Javascript 布尔值在ng模型中并不处处反映;与巴塔朗进行验证,并使用控制器作为
我试图理解观察者,但我遇到了一个奇怪的问题 我有这样的代码: HTMLJavascript 布尔值在ng模型中并不处处反映;与巴塔朗进行验证,并使用控制器作为,javascript,angularjs,Javascript,Angularjs,我试图理解观察者,但我遇到了一个奇怪的问题 我有这样的代码: HTML <div ng-app='dummyApp'> <div ng-controller="SampleController as sample"> <input type="checkbox" ng-model="sample.toggleValue" /> <p ng-model="sample.toggleValue"></p> <
<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>
console.log
工作正常,并在控制台中更改值时显示这些值。但是toggleValue
的值和text
的值都不会显示在浏览器中;两个
都保持为空(实际上,我希望在默认情况下p标记中有一个与ng模型中的变量无关的值(例如)。我检查了他们的类,它们是ng pristite
,ng untoucted
和ng empty
但是,
按预期显示真/假值
我没有在DOM中的任何地方使用$scope,所以我认为这不是继承的问题。
我也和巴塔朗检查了范围
我在这里不知所措
注意:标签中没有文本,这就是它们不可见的原因。不要使用forp
标记,这不是它的目的ngModel
将输入绑定到ModelController。如果要将值添加到
标记,请使用指令或使用{{expression}
angular语法,如下所示
(函数(){
角度模块('dummyApp',[]);
角度.module('dummyApp')
.控制器(“采样控制器”,采样控制器);
函数SampleController($scope){
var vm=这个;
vm.text=“”;
$scope.default=“默认字符串”;
$scope.$watch('sample.toggleValue',函数(newVal,oldVal){
log({newval:newval,old:oldVal});
//vm.text+=vm.text+“;”;
});
}
})();代码>
切换为false
{{default}}
标签中没有文本,这就是它们不可见的原因。不要使用forp
标记,这不是它的目的ngModel
将输入绑定到ModelController。如果要将值添加到
标记,请使用指令或使用{{expression}
angular语法,如下所示
(函数(){
角度模块('dummyApp',[]);
角度.module('dummyApp')
.控制器(“采样控制器”,采样控制器);
函数SampleController($scope){
var vm=这个;
vm.text=“”;
$scope.default=“默认字符串”;
$scope.$watch('sample.toggleValue',函数(newVal,oldVal){
log({newval:newval,old:oldVal});
//vm.text+=vm.text+“;”;
});
}
})();代码>
切换为false
{{default}}
要显示布尔值,只需在p标记中删除ng模型,然后使用{{sample.toggleValue}}要显示布尔值,只需在p标记中删除ng模型,然后使用{sample.toggleValue}
好的,我将使用ng bind
。我希望在p标记中有一个默认值,该值与ng模型中的变量无关(例如)。如果您想要一个具有drafult值的正常p
标记,请在控制器中定义一个$scope。默认值,并使用ng BindOK将其绑定到p标记,我将使用ng bind
。我希望在p标记中有一个默认值,该值与ng模型中的变量无关(例如)。如果您想要一个具有drafult值的普通p
标记,请在控制器中定义一个$scope.default
,并使用ng bind将其绑定到p标记
(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 + ";";
});
}
})();