ng模型中的动态变量

时间:2014-03-12 19:18:31

标签: javascript angularjs

我是Angular的新人,我盯着在一个项目中工作,女巫正在将它用于前端。事情是。我有一个下拉列表,其值为1,2,3等...当您在下拉列表中选择某些内容时,取决于您点击的内容。 currentEntry变量正在更改值并过滤数据value="{{entry['properties'][currentEntry]['password']}}"。当我有简单的输入标签时,这非常有效。

但是当我这样做时:

<input type="password" name="pasword" ng-model="password" ng-change="addProperty(password,'password')" class="form-control" placeholder="Password" value="{{entry['properties'][currentEntry]['password']}}">

发生了什么,当我在代码中检查元素而不是在客户端上检查元素时,值的适当性正在发生变化。

我意识到价值存储在ng-model中,所以我需要以某种方式创建这个模型dinamicaly例如当我点击下拉项目时女巫有价值1 ng-model应该看起来像这样的ng-model =&# 34;密码1&#34;等...

我将此号码存储在变量&#34; currentEntry&#34;所以我试着做这样的事情

<input type="password" name="pasword" ng-model="password{{currentEntry}}"......>

但我收到语法错误

Token '{' is an unexpected token at column 9 of the expression [password{{currentEntry}}] starting at [{{currentEntry}}].

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

你不能像Javascript那样做动态变量(这不是php)。而是使用函数或对象。

<强>功能

$scope.password = function(){
    //use $scope.currentEntry here
    return value;
}

并在您的视图中

<input type="text" ng-model="password()"/>

<强>对象

另一种可能性是

<input type="text" ng-model="passwords[currentEntry]">

其中$scope.passwords是包含您的密码的对象。

$scope.password= {1: 'a password', 2: 'another password'}

有关Javascript中动态变量的更多信息,请参阅Use dynamic variable names in JavaScript