Как использовать динамические переменные на NG-Click Angular?
Ну, я не знаю, как я могу использовать "динамические" переменные на ng-click
приписывать. В этом случае я хочу обновить переменную из ссылки в ng-click
ng-if
и т.п.
Моя идея - обновить переменные по ссылке и без функции создания, чтобы обновить это.
контроллер:
$scope.elements = [
//...
{
age:20,
dynamicallyUpdateVariableWithFollowingName:"age"
}
//...
];
Посмотреть:
<div ng-repeat="element in elements">
<a href="" ng-click="element.dynamicallyUpdateVariableWithFollowingName = 27 ">Update AGE</a>
<h1>You age is {{element.age}}</h1>
</div>
Итак, я не хочу использовать этот метод:
контроллер:
$scope.elements = [
//...
{
age:20,
dynamicallyUpdateVariableWithFollowingName:"age"
}
//...
];
$scope.update = function( varname , value ){ $scope[varname] = value;}
HTML:
<div ng-repeat="element in elements">
<a href="" ng-click=" update(' dynamicallyUpdateVariableWithFollowingName', 27) ">Update AGE</a>
<h1>You age is {{element.age}}</h1>
</div>
Спасибо!
4 ответа
Итак, ваш вопрос в том, что вы хотите обновить свои данные без использования какой-либо функции, значит, вы не хотите использовать контроллер для их обновления.
Так что все довольно просто...
Это ваш.js (код контроллера)
$scope.elements = [
{
age: 20,
dynamicallyUpdateVariableWithFollowingName: 'age'
}
];
// Html
<div ng-repeat="element in elements track by $index">
<a href="" ng-click="element.age = 21">Update Age</a>
<h1>Your age is {{element.age}}</h1>
</div>
Заранее спасибо
Может быть, это поможет вам
HTML
<div ng-repeat="element in elements">
<a href="" ng-click="Update($index)">Update AGE</a>
<h1>You age is {{element.age}}</h1>
</div>
JS часть
$scope.Update=function(i){
$scope.elements[i].age="new age";
}
Вы можете проверить свои условия внутри Update
функция
Обновить
Это то, что вы ожидаете, проверьте здесь http://codepen.io/keephacking/pen/yJGVNx?editors=1010
Я не мог понять вашу концепцию динамических переменных, но вижу это, если она соответствует вашему случаю
$scope.elements = [ { age:17, Name:"age1" },
{ age:24, Name:"age2" },
{ age:33, Name:"age3" }];
$scope.changeage = function(name, age){
angular.forEach($scope.elements, function(value, key) {
if(value.Name == name){
value.age = age;
return;
}
});
}
Ваш HTML:
<div ng-repeat="element in elements">
<a href=""
ng-click="changeage('age' +($index +1) , ($index +1) * 20)">
Update AGE</a>
<h1>You age is {{element.age}}</h1>
</div>
Увидеть скрипку
$scope.elements = [
{
age:20,
dynamicallyUpdateVariableWithFollowingName:"age"
}
];
<div ng-repeat="element in elements">
<a href="" ng-click="element[element.dynamicallyUpdateVariableWithFollowingName] = 27 ">Update AGE</a>
<h1>You age is {{element.age}}</h1>
</div>