"request"と "purchase order"という名前のモジュールで作業しています。依頼は、実行された購買発注を表示および編集することができます。また、購買発注モジュールは購買発注も管理します。ng-clickが発砲された後、コールサービス機能を呼び出す
基本的には同じものですが、リクエストまたは購入注文からアクセスできます。その代わりに、購買発注のすべてのコードをコピーしてコピーし、IDを渡してから、購買発注Ctrlを呼び出しました。それからIDを渡すサービスを作成しました。なぜなら$ broadcastを使っているのは良いことではないということです。
IDは正常に渡すことができますが、ng-clickが実行された後に初めて角度サービスが実行されるのはなぜですか?ここで
は私のサービスコード
.service('passID', function() {
var id = null;
var setID = function(passed_id) {
id = passed_id;
};
var getID = function(){
return id;
};
return {
setID: setID,
getID: getID
};
})
はここに私の要求コントローラ
var vm = this;
vm.createModule = createModule;
function createModule(type,id){
vm.state = null;
switch(type){
case "PurchaseOrder":
vm.state = type;
passID.setID(id);
break;
}
}
と、ここでの機能は私の購入注文のコントローラ内のコード
if(passID.getID() != null){
vm.id = passID.getID();
console.log(vm.id);
}
がここにされているされていますリクエストビューファイル
<li role="menuitem"><a href="" ng-click="vm.createModule('PurchaseOrder',item.id)">
<i class="fa fa-pencil"></i> Create Purchase Order </a>
</li>
<div ng-controller="customerPurchaseOrderCtrl" ng-if="vm.state == 'PurchaseOrder'">
<span ng-include="'app_view/modules/ship/purchase_order/customer/form.html'" ></span>
</div>
ページが読み込まれてから、ng-click
関数を起動すると、それはうまく動作し、console.log(vm.id)
を実行します。しかし、別のリクエストデータをクリックすると、それ以上は動作しません。 console.log
は実行されていません。
私はここで間違っていますか?ありがとうございます:)
この特定の例については正しいと思われます。あなたは別のリクエストデータをクリックしようとしているところでいくつかのコードを提供できますか? – AndreaM16
htmlで 'vm.createModule'を呼び出しています。これはどこに割り当てられていますか?あなたのコントローラの –
は、 'var vm = this;のようにvmにcreateModuleをバインドします。 vm.createModule = createModule; ' –