Как использовать динамические переменные на NG-Click Angular?

Ну, я не знаю, как я могу использовать "динамические" переменные на ng-click приписывать. В этом случае я хочу обновить переменную из ссылки в ng-clickng-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>
Другие вопросы по тегам