Zmagałem się z tym przez kilka godzin, więc chciałbym dodać do tego kilka wyjaśnień, wszystkie przytoczone tutaj przykłady odnoszą się do przypadków, w których dane są ładowane z samego skryptu, a nie z usługi lub bazy danych, więc chciałbym przekazać moje doświadczenie każdemu, kto ma ten sam problem, co ja.
Zwykle zapisujesz tylko identyfikator żądanej opcji w swojej bazie danych, więc ... pokażmy to
service.js
myApp.factory('Models', function($http) {
var models = {};
models.allModels = function(options) {
return $http.post(url_service, {options: options});
};
return models;
});
controller.js
myApp.controller('exampleController', function($scope, Models) {
$scope.mainObj={id_main: 1, id_model: 101};
$scope.selected_model = $scope.mainObj.id_model;
Models.allModels({}).success(function(data) {
$scope.models = data;
});
});
Wreszcie częściowy html model.html
Model: <select ng-model="selected_model"
ng-options="model.id_model as model.name for model in models" ></select>
w zasadzie chciałem wskazać ten element „ model.id_model jako model.name dla modelu w modelach ”, „ model.id_model ” używa identyfikatora modelu dla wartości, aby można było dopasować go do „ mainObj.id_model ”, który jest również „ selected_model ”, to tylko zwykła wartość, również „ as model.name ” to etykieta dla repeatera, wreszcie „ model in models ” to zwykły cykl, o którym wszyscy wiemy.
Mam nadzieję, że to komuś pomoże, a jeśli tak, zagłosuj za: D
ng-option
jest zastąpienie<option ng-repeat="value in prop.values">{{value}}</option>
ponownie dzięki