#angularjs
#angularjs
Вопрос:
Как $scope.clickedVal
войти r.clickedVal
?
Нажатие кнопки вызывает функцию, передавая два параметра:
<a ng-click="display('Info', 'Admission_Info'); filters.Admission_Info= '!!'; ">Info</a>
<a ng-click="display('Info', 'SomeOther_Info'); filters.SomeOther_Info= '!!'; ">Other</a>
Функция в контроллере:
$scope.display = function (col, val) {
$scope.filters = {};
$scope.clickedColumn = col;
$scope.clickedVal = val;
};
Таблица отображает отфильтрованное представление с 2 столбцами.
<tr ng-repeat="r in response | filter:filters as filtered " ng-show="filtered.length">
<td>{{ r.Name }}</td>
<td>{{ r.clickedVal }}</td>
</tr>
{{ r.{{clickedVal}} }}
не сработало.
Так, например, если нажата первая кнопка, r.clickedVal
должна вернуться r.SomeOther_Info
.
Я также пытался создать фильтр, но столкнулся с той же проблемой — m.value
неверно.
SchoolProgramsApp.filter('myFilter', function () {
return function (input, column, value) {
var out = [];
angular.forEach(input, function (m) {
if (m.value === value) {
out.push(m)
}
})
return out;
}
});
Комментарии:
1. Я не понимаю. У вас есть переменная области видимости с именем
response
— как это выглядит? Выng-click
устанавливаете какую-то другую переменную области видимости, и я не вижу связи между ней иresponse
.
Ответ №1:
Вы должны использовать обозначение в скобках для доступа к свойству объекта по имени переменной:
{{ r[clickedVal] }}
Комментарии:
1. Спасибо за ваш быстрый и полезный ответ.