Angularjs NgModelController$parsers和$formatters不';t使用$render和$viewValue
我正试图理解和的$formatters和$parser 我已经创造了,但有几个问题需要澄清 下面是我的主要代码Angularjs NgModelController$parsers和$formatters不';t使用$render和$viewValue,angularjs,angularjs-directive,language-concepts,Angularjs,Angularjs Directive,Language Concepts,我正试图理解和的$formatters和$parser 我已经创造了,但有几个问题需要澄清 下面是我的主要代码 <body ng-app="app"> <input type="text" ng-model="what" placeholder="directive Value" custom-formatter> <input type="text" ng-model="what" placeholder="model value" > change val
<body ng-app="app">
<input type="text" ng-model="what" placeholder="directive Value" custom-formatter>
<input type="text" ng-model="what" placeholder="model value" >
change value {{ what }}
</body>
下面是我的几点困惑和理解,如果我错了,请纠正我
{}
时,为什么更改会反映到具有相同ng model
值的其他输入框
因为我们在自定义指令中添加了require:'ngModel'
ngModelCtrl.$render = function () {
console.log('render called');
console.log(ngModelCtrl.$viewValue;) // this gives UPPERCASE text
};
但是输出(另一个文本框和{{expression}})不显示大写值:(
它需要打电话给它吗
“更新视图值”
但是怎么打,在哪里打?我试过了
ngModelCtrl.$render = function () {
console.log('render called');
ngModelCtrl.$setViewValue({what : scope.what }) << doesn't work
console.log(ngModelCtrl.$viewValue;) // this gives UPPERCASE text
};
即使这从来没有被称为,为什么呢
请告诉我何时使用$watch以及何时将$render与$viewValue和$setViewValue一起使用以及如何使用。无人解释:(无人解释:(
ngModelCtrl.$render = function () {
console.log('render called');
ngModelCtrl.$setViewValue({what : scope.what }) << doesn't work
console.log(ngModelCtrl.$viewValue;) // this gives UPPERCASE text
};
scope.$watch('what', function() {
console.log('watcher called');
ngModelCtrl.$setViewValue({
what : scope.what
});
});