Как установить объект модели в качестве значения в HTML-теге AngularJS?

0

Мне нужно установить объект $ scope в теге select HTML AngularJS, я четко объясню свое требование:

Вот мой код скрипта angularjs:

$scope.departments = $http.get("getDepartmentList");

В области отдела я получаю список объектов отдела из контроллера Spring mvc, который извлекается из базы данных.

Этот раздел области я буду использовать в html select as

<select name="department" 
        ng-model="department" 
        class="form-control" 
        ng-options="department as department.deptName for department in departments" 
        class="select_form" >
        option 
        value="">Select Department</option>
</select>

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

Во время модификации я задал объем отдела как

$scope.department = $http.get("getDepartmentById);

Таким образом, приведенный выше код будет иметь один объект отдела в области видимости, но он не выбран в списке

Я попытался использовать ng-значение в теге select как

<select name="department" 
        ng-model="department" 
        class="form-control" 
        ng-options="department as department.deptName for department in departments" 
        ng-value="department" 
        class="select_form" >
        <option value="">Select Department</option>
</select>

Но бесполезно, может кто-нибудь помочь установить объект из списка выбора на странице html.

Теги:
select
angularjs-scope

1 ответ

1

В AngularJS $http это сервис, который возвращает обещание. Он запускается асинхронно, и затем вы используете его возвращаемые значения (или исключения), когда они обрабатываются.

Как взято из документов, API $ http основан на API-интерфейсах отложенных/обещаний, открытых службой $ q.

В настоящее время вы назначаете обещание $scope.departments, это не то, что вы хотите, вам нужно назначить ему данные, которые разрешены в ответе от вашего контроллера пружины.

Ниже приведен пример использования службы $ http:

// make your request to your spring mvc controller path
$http.get("getDepartmentList").then(function(response) {

    // set the data from the response data object
    $scope.departments = response.data

}, function(error) {

    // handle any errors that may occur

});

И для вашего единственного отдела (я предполагаю, что вы можете установить его как выбранный):

// again, make your request to your spring mvc controller path 
// but this time you should perhaps include an id parameter
$http.get("getDepartmentById?id=").then(function(response) {

    // set the data from the response data object
    $scope.department = response.data

}, function(error) {

    // again, handle any errors that may occur

});
  • 0
    Хорошо, я могу понять, но в списке будет доступен только один объект.
  • 0
    Это зависит от данных, которые вы возвращаете из контроллера Spring MVC. Глядя на ваш код, если вы делаете вызов getDepartmentList, у вас должен быть список объектов. Затем вы повторяете эти объекты по своему выбору, используя директиву ng-options (как у вас сейчас)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню