私のモデルのプロパティを取得してこの値を変更するディレクティブを作成しますが、ディレクティブで値を代入するとオブジェクト全体が上書きされますasync call: 私は私のモデルオブジェクトディレクティブのNgModelプロパティを変更すると、すべてのスコープのangleJsがオーバーライドされます
object: {
phone:"123456",
name: "Jhon",
surname: "Smith"
}
を持っていると私は電話番号を変更するだろう、と私は 私-HTMLを持って
<input type="text" id="phone" class="form-control" data-ng-model="object.phone" custom-number>
と私の指示:それは唯一のプロパティ電話で上書き
.directive('customNumber', [ '$timeout', function ($timeout) {
return {
restrict: 'A',
require: 'ngModel',
scope: {
bindedModel: "=ngModel"
},
link: function(scope, element, attrs) {
scope.bindedModel= "0000";
}
}
そして、私のモデルオブジェクトは、今の私のモデルは次のとおりです。
object: {
phone: "0000"
}
それができる私の全体のオブジェクトを上書きし、どのように、なぜ私はこれを避ける?
EDIT
私は私のHTML
<custom-number model="object.phone" />
そして、私の指示で変更する場合:
var tpl = ' <input type="text" id="id" class="form-control" ng-model="model">';
var init = 0;
return {
restrict: 'EA',
scope: {
model: '=',
id:'='
},
template: tpl,
link: function(scope, element, attrs) {
scope.$watch('model', function(newValue, oldValue) {
if (oldValue != newValue && init == 0){
scope.model = "0000"
}
});
}
};
をそれが唯一の右の値を変更するが、私は最初にそれを行うだろう時間
こんにちはthankyou..この問題は多分入力がng-repeatの内部にあるので非同期ですか? – LorenzoBerti
私の質問を編集する – LorenzoBerti
あなたの編集後に私の回答を編集しました – mpdev7