手表未对ng-model="billing.inputBoxFilter"
进行更改。有任何想法吗?没有错误。只是没有来自console.log
<ng-include
src="'billing/billing.html'"
ng-controller="BillingCtrl as billing"></ng-include>
<md-input-container flex="50">
<label>Name</label>
<input ng-model="billing.inputBoxFilter" type="text"
ng-disabled="selectedItem">
<md-icon md-svg-icon="magnify"></md-icon></md-icon>
</md-input-container>
angular.module('patientBilling')
.controller('BillingCtrl', [
this.inputBoxFilter;
$scope.$watch(angular.bind(this, function() {
return this.inputBoxFilter;
}, function(newValue, oldValue) {
console.log(newValue);
}));
答案 0 :(得分:1)
只需使用this
的参考号。
var vm = this;
$scope.$watch(function() {
return vm.inputBoxFilter
}, function(newValue, oldValue) {
console.log(newValue);
});
的 DEMO 强>
答案 1 :(得分:1)
当定义了controllerAs标识符时,Controller实例作为范围的属性可用,这就是使用controllerAs语法的原因。
是
$scope.$watch('billing.inputBoxFilter', function(newValue, oldValue) { ... });
答案 2 :(得分:0)
问题是语法问题(而不是错误),其中回调参数不正确。关于ControllerAs语法如何破坏可读性并导致过多代码的一个很好的例子。
$scope.$watch(angular.bind(this, function() {
return vm.inputBoxFilter;
}), function(newValue, oldValue) {
console.log(newValue);
});