1
問題描述是否可以動態分配`在AngularJS NG-model`
我試圖創建一個使用AngularJS
簡單Grid
。此網格中的每個cell
都有一個text-input
。有一個額外的text-input
(我稱之爲全局)其ng-model
應該被動態地分配給grid-cell
之一,每當用戶focus
就表示grid-cell
。
是不是很清楚?讓我告訴我的執行不成功:
標記
<body ng-controller="MainCtrl">
<b> Global : </b>
<input type="text", ng-model="global" size=50 />
<br />
<b> Grid : </b>
<table>
<thead>
<tr>
<th>Name</th>
<th>Address</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items">
<td> <input type="text" ng-model="item.name" grid-input="global" /></td>
<td> <input type="text" ng-model="item.address" grid-input="global" /></td>
<td> <input type="text" ng-model="item.email" grid-input="global" /></td>
</tr>
</tbody>
</table>
</body>
的角度應用
var app = angular.module('app', []);
app.directive('gridInput', function($rootScope){
return {
restrict : 'AE'
, scope : {
model : '=ngModel'
, global : '=gridInput'
}
, link : function(scope, iElem, iAttrs) {
$(iElem).on('focus', function(e){
scope.global = scope.model;//what is this doing?? I don't KNOW!
})
}
}
});
app.controller('MainCtrl', function($scope) {
$scope.items = [
{name : 'Lekhnath Rijal', address:'Ilam, Nepal', email:'[email protected]'},
{name : 'abc def', address:'ghi, jkl', email:'[email protected]'}
];
});
我想要什麼
餘萬t在細胞聚焦後global text-input
與grid-cell
之一之間的雙向數據綁定。這兩個inputs
之間的binding
應該一直存在,直到其中一個grid-cell
獲得焦點。
這裏是一個Plunker
GR8,但有一個小錯誤。如果您從全局文本框中刪除了所有字符,則最後一個字符不會從單元格輸入中清除。我會試着去解決這個問題,並希望你能回顧一次。 – Lekhnath
我明白了。只需更改範圍的if語句。$ watch to if(text!= undefined)。我更新了答案。 – Tamura