Недавно я рассмотрел Angular как учебное упражнение.
Я хотел бы передать метод ng-model
или выражение, которое может быть оценено одним.
В этой скрипте http://jsfiddle.net/C4aGk/ вы увидите, что я жестко закодировал поле как ng-model="record.inner[0].text"
, и он работает, теперь Дело в том, что я хотел бы заменить закодированный нуль чем-то, что возвращается во время выполнения, выбранным по критерию id = 1
.
Мой HTML-код:
<div ng-controller="MainController" ng-app>
<div ng-repeat="record in records">
<input ng-model="record.inner[0].text"> <span>{{record.outer}}</span>
<div ng-repeat="nested in record.inner">{{nested.id}} - {{nested.text}}</div>
<hr />
</div>
</div>
<br/>
и соответствующие js:
function MainController($scope) {
$scope.records = [{
outer: "Hello",
inner: [{
id: 1,
text: "Angular"
}, {
id: 2,
text: "jQuery"
}]
}, {
outer: "World",
inner: [{
id: 1,
text: "Node.js"
}, {
id: 2,
text: "Underscore.js"
}]
}];
$scope.getText = function (record) {
var index = 0;
for (nested in record.inner) {
if (nested.id === 1) {
return "record.inner[" + index + "].text";
}
index++;
}
};
Я пробовал разместить ng-model="getText(record)"
в соответствии с https://groups.google.com/forum/#!topic/angular/Pef6LY2rT7g без успеха, а другой поиск показал это https://github.com/angular/angular.js/pull/1328, что для меня одинаково бесполезно.
Любая помощь будет высоко оценена.