私はウォッチャーを理解しようとしていますが、私は奇妙な問題に遭遇しました。ブール値はng-modelのどこにも反映されません。 Batarangと確認してコントローラを使用
私はこのようなコードを持っている:
HTML
<div ng-app='dummyApp'>
<div ng-controller="SampleController as sample">
<input type="checkbox" ng-model="sample.toggleValue" />
<p ng-model="sample.toggleValue"></p>
<textarea ng-model = "sample.toggleValue"></textarea>
<p ng-model="sample.text"></p>
</div>
</div>
JS
(function() {
angular.module('dummyApp', []);
angular.module('dummyApp')
.controller('SampleController', SampleController);
function SampleController($scope) {
var vm = this;
vm.text = "";
$scope.$watch('sample.toggleValue', function(newVal, oldVal) {
console.log({newval: newVal, old: oldVal});
vm.text = vm.text + ";";
});
}
})();
正しくconsole.log
作品を、それらがコンソールで変更されたような値を示しています。しかし、toggleValue
の値もtext
の値もブラウザに表示されません。両方とも<p>
は空のままです(実際には、ng-modelの変数に関係のないpタグにはデフォルトで値を設定したいとします(<は不明です>など)。私はクラスをチェックしました。彼らはng-pristine
、ng-untouched
、ng-empty
です。
ただし、<textarea>
は、期待通りにtrue/false
の値を示します。
DOMのどこにでも$ scopeを使用していないので、これは継承の問題ではないと思います。 私はBatarangとの範囲もチェックしました。
私はここに迷っています。
P.S. https://jsfiddle.net/6bud04er/
を使用するブール値を表示するにはさて、私は 'NG-bind'を使用します。私は、ng-modelの変数に関係のないpタグ(例えば、)にデフォルトで値を設定したかったのです。 –
cst1992
通常の 'p'タグをdrafult値にするには、コントローラに' $ scope.default'を定義し、ng-bindを使ってpタグにバインドします – superUser