0
の結果とDOMを更新:私のコントローラでAngularJS - 私はこのマークアップを持っているサービスメソッド
<div ng-controller="AutoDeployController as autoDeploy">
<input type="text" ng-model="autoDeploy.message">
<p>Message: {{ autoDeploy.message }}</p>
</div>
<button ng-click="autoDeploy.change()">change</button>
この方法:
model = this;
model.change = function(){
model.message = AutoDeployService.returnOne();
};
この方法は、私のサービスモジュールに:
function returnOne(){
return "one";
}
クロムを使用してデバッグすると、model.message
が"one"
に変更され、 peはテキストボックス内でmodel.message
を変更し、model.message
の他のフィールドはオンザフライで変更されます...ボタンをクリックするとDOMが更新されないのはなぜですか?
$compile
またはDOMオブジェクトを作成して追加するためのボタンを使った私の経験に基づいた別のシステム変数が含まれている可能性がありますが、システム変数がいつ/なぜ使用されるかわかりません。
奇妙な...私は既に@ jrDeveloperの最初のコメントで述べたようにそれを試しました。それは今でも働く。それは問題の原因となっているはずです。 –
残りのコードを見なくても答えが得られるのであれば、ディレクティブテンプレートを挿入する私の他のボタンがdivの外側でコントローラーと一緒に動作するのはなぜですか?たぶんこの機能は、すでにコントローラに搭載されているのではなく、サービスに含まれているからでしょうか? –
キーは「autoDeploy」というコントローラーにアクセスしようとしているため、設定されているdiv内にある必要があります。他のボタンがautoDeployコントローラのメソッドを呼び出そうとしない場合、それらのコントローラdiv内にある必要はありません。 – user553086