1

好吧,我不知道如何在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

4 回答 4

1

因此,您的问题是您想在不使用任何功能的情况下更新数据,这意味着您不想使用控制器来更新它。

所以这很简单...

这是您的 .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>
于 2016-08-12T08:01:33.777 回答
0
$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>
于 2016-08-10T15:49:23.587 回答
0

可能这会帮助你

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

于 2016-08-10T15:41:20.107 回答
0

我无法理解您的动态变量概念,但如果它符合您的情况,请查看

$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>

小提琴

于 2016-08-10T15:57:52.540 回答