Я исследовал эту проблему и нашел решения, используя php, но не угловой.

Одно из требований для сохранения данных на моей странице требует, чтобы два отдельных угловых объекта имели одинаковый идентификатор. Ниже приведен код:

Html

<select class="form-control" ng-model="temp" ng-options="type as type.Name for type in Displays">
</select>

AngularJS

$scope.Prop = Prop.data;
$scope.Displays = Displays.data;

То, что я хотел бы сделать, это когда угловой объект выбран в раскрывающемся списке, я хочу назначить Displays.Id равным Prop.TestTemplateId.

Как бы я это сделал? заранее спасибо

2
RyeGuy 10 Янв 2017 в 01:33

3 ответа

Лучший ответ

Простой способ был бы ng-change

Посмотреть:

<select class="form-control"  
        ng-options="type as type.Name for type in Displays"
        ng-change="setId(type.Id)">
</select>

Ctrl :

$scope.setId = function(Id){
    $scope.Prop.TestTemplateId = Id;
};

Или вы можете просто установить значение непосредственно в представлении

<select class="form-control"  
        ng-options="type as type.Name for type in Displays"
        ng-change="Prop.TestTemplateId = type.Id;">
</select>
1
Marcus Höglund 10 Янв 2017 в 21:54

Вы можете использовать директиву ng-change для <select> запроса вызвать функцию, которая устанавливает / обновляет значение свойства. Вы можете получить значение выбранного элемента из свойства «temp», которое вы определили в директиве ngModel.

Html:

<select class="form-control" ng-model="temp" ng-options="type as type.Name for type in Displays" ng-change="update()">
</select>

Js:

$scope.update = function() {
    // can retrieve value of selected item of "temp" ngModel property
    $scope.Prop.TestTemplateId = $scope.temp.id;
};
2
Alexander Staroselsky 10 Янв 2017 в 21:42

Я понимаю, что значение, которое вы выбираете в раскрывающемся списке, связано с $ scope.temp. Следовательно, при инициализации контроллера вы можете наблюдать эту переменную и обновлять '$ scope.testProp.TestTemplateId' новым значением следующим образом:

$scope.$watch('temp', function(newType, oldType) {
    $scope.Prop.TestTemplateId = newType.Id;
});

Это сделает ..

  • угловые часы '$ scope.temp'
  • всякий раз, когда это значение изменяется (например, выбирается с помощью раскрывающегося списка), данная функция вызывается с новым значением (и старым значением)
  • внутри этой функции вы можете обновить '$ scope.test Prop.Test TemplateId'
3
mararn1618 10 Янв 2017 в 21:31