2016-10-20 2 views
0

Если у вас есть в вид что-то вроде:

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

Так как угловые отображает объекты, которые вы не можете сделать в контроллере что-то вроде:

$scope.foo.bar2 = "something"; 

Вместо этого вам нужно сделать:

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

Так что, если мне нужно изменить только одно свойство этого объекта я në чтобы переназначать другие значения каждый раз?

+0

Не нужно. Если вы инициализировали объект foo значениями по умолчанию, вы можете получить доступ к отдельным свойствам объекта – Vamsi

+0

Не работает ли это $ scope.foo [bar1] = «Обновленное значение»? – Thangadurai

+0

Если вы инициализировали '$ scope.foo', вы можете сделать это как' $ scope.foo.bar2 = "something"; '. И я думаю, у вас уже есть инициализация. – Sajan

ответ

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> 

Теперь, если вы сохраняете изменения значения в текстовом поле, он будет держать отражая в деталях лица ниже.

0

Если у вас есть:

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

или просто

$scope.foo = {}; 

Тогда вы можете сделать:

$scope.foo.bar2 = "something"; 

После этой инициализации, везде, где вы хотите.

Смежные вопросы