3
所以我有一個使用編譯函數替換元素的指令。替換元素的模板有一個我想要應用ng-model的輸入。 ng-model屬性應該應用於原始元素。將ng-model轉發到指令中的元素的正確方法是什麼?
我有工作 - 但是,當在我的指令中輸入時,模型更新滯後。使用ng-model輸入標準輸入時,更新即時顯示。
我不知道我描述這個不夠好...所以這裏的一些代碼:
這裏的HTML
<div ng-app="app">
<div ng-model="test" model-forwarder></div>
<input ng-model="test" type="text" />
</div>
這裏的JS
angular
.module('app', [])
.directive('modelForwarder', function(){
return {
require: '^ngModel',
compile: function(element, attributes){
element.replaceWith('<div><input type="text" /></div>');
return function(scope, element, attributes, ngModel){
var input = element.find('input');
ngModel.$render = function() {
if (ngModel.$viewValue !== undefined)
input.val(ngModel.$viewValue);
};
input.bind('keyup keydown keypress blur change', function (e) {
scope.$apply(function(){
var value = input.val();
ngModel.$setViewValue(value);
});
});
};
}
};
});
的jsfiddle: http://jsfiddle.net/KjNL2/
我的問題是,「有沒有更好的WA這樣做?難道我做錯了什麼?「