如何更改$ scope中对象的各个属性

时间:2016-10-20 09:50:42

标签: javascript angularjs

如果您在视图中有以下内容:

<span ng-model="foo.bar1"></span>
<span ng-model="foo.bar2"></span>
<span ng-model="foo.bar3"></span>

因为Angular如何映射你在控制器中无法做的对象:

$scope.foo.bar2 = "something";

相反,您需要这样做:

$scope.foo = {
  bar1: "value1",
  bar2: "something",
  bar3: "value2"
}

那么,如果我只需要更改该对象的一个​​属性,我每次都需要重新分配其他值吗?

2 个答案:

答案 0 :(得分:0)

如果你有:

$scope.foo = {
  bar1: "bar1Value", // any initialization value for all 3
  bar2: "bar2Value",
  bar3: "bar3Value"
}

或只是

$scope.foo = {};

然后你可以这样做:

$scope.foo.bar2 = "something";

在初始化之后,无论你想要什么。

答案 1 :(得分:0)

根本不需要。您需要做的就是初始化。以下是一段示例代码:

在控制器中

$scope.person ={
age: 30,
sex: 'male',
name: 'hero',
occupation: 'actor'

}

在HTML中

 <h3>Person Details</h3>
 <p><input type="text" ng-model="person.occupation"></p>
   <span>{{person.name}},</span>
   <span>{{person.age}},</span>
   <span>{{person.sex}},</span>
   <span>{{person.occupation}}</span>

现在,如果您不断更改文本框中的值,它会反映在下面的人员详细信息中。