У меня есть два списка элементов: all_todos my_todos
Я хочу создать директиву, которая будет обновлять флажки задач, если мои задачи обновляются где-нибудь еще в приложении.
<tr ng-repeat="todo in all_todos">
<td>
<input type="checkbox" ng-checked="_.findIndex(my_todos, function(t){return t.id == todo.id;}) > -1"/>
</td>
<td>
{{todo.title}}
</td>
</tr>
Angular не любит начальную фигурную скобку в файле ng-checked. Я хочу избежать написания $ scope.watch и размещения свойства в массиве, если это возможно.
1 ответ
Попробуйте создать функцию в вашем контроллере, которая берет содержимое вашей фактической директивы ng-checked и вызывает ее в ng-checked.
У тебя должно быть что-то подобное
// your controller
angular.module('..').
controller('..', function() {
$scope.test = function() {
return _.findIndex(my_todos, function(t){return t.id == todo.id;}) > -1;
}
})
И в вашем html
<.... ng-checked="test()" />
Я думаю, что объявление функции в вашей директиве является ключом к вашей проблеме
Похожие вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].