【发布时间】:2015-05-20 17:29:58
【问题描述】:
有一个input 和ngModel,其中有$formatters 和$parsers -
link: function(scope, element, attrs, ngModel) {
//format text going to user (model to view)
ngModel.$formatters.push(function(obj) {
return obj.first;
});
}
在我对输入进行任何更改后,我错过了示波器上的这个模型,意思是 -{{person.first}} 什么都不显示。
这是完整的代码 -
var myAppModule = angular.module('myApp', []);
myAppModule.controller('myCtrl',function ($scope) {
$scope.person = {
first: 'Alice',
last: 'Bob'
}
})
.directive('myDrtv',function(){
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
var _ngModel = ngModel;
//format text going to user (model to view)
ngModel.$formatters.push(function(obj) {
return obj.first;
});
//format text from the user (view to model)
ngModel.$parsers.push(function(value) {
return value;
});
}
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="myCtrl">
Name : <input my-drtv ng-model="person" type="text"><br>
{{person.first}}
</div>
</div>
我怎样才能更改输入并仍然在{{person.first}} 中看到它?
请不要回答我,请将其更改为 ng-model="person.first" 我正在寻找解决方案 - ng-model="person"
【问题讨论】:
标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-model