У меня есть следующий select (in jade):
select(ng-model="note.shop1", ng-change="selectShop()", ng-disabled="allShops" ng-show="positionAvailable")
option(ng-repeat="shop in nearbyShops" value="{{shop._id}}")
{{shop.name}} ({{shop.contact_address}} {{shop.contact_housenr}}, {{shop.contact_city}})
option(value="otherShop") My store isn't listed.
Selectshop() в моем контроллере:
$scope.selectShop = function(){
if($scope.note.shop1 == "otherShop"){
$scope.allShops = true;
}
}
Я хочу сохранить выбранный идентификатор, поэтому я могу его сохранить, но я хочу показать {{shop.name}}
пользователю, когда он выбрал магазин. Как я могу это сделать?
Итак, я хочу выбрать {{shop._id}}
и выбрать {{shop.name}}
.
Вам просто нужно удалить ._id
из значения, чтобы передать объект в свой метод ng-change
. Попробуй это.
select(ng-model="note.shop1", ng-change="selectShop(note.shop1)", ng-disabled="allShops" ng-show="positionAvailable")
option(ng-repeat="shop in nearbyShops" value="{{shop}}")
{{shop.name}} ({{shop.contact_address}} {{shop.contact_housenr}}, {{shop.contact_city}})
и в вашем методе selectShop
. получить их
$scope.selectShop = function(selectedShop){
console.log(selectedShop._id, selectedShop.name);
if($scope.note.shop1 == "otherShop"){
$scope.allShops = true;
}
}
Я продемонстрировал демонстрационную скрипту.
Надеюсь, поможет.
console.log(selectedShop._id, selectedShop.name);
в selectShop()
Я могу предложить и версию HTML для вашей проблемы.
<select ng-model="selectedShop._id" ng-options="selectedShop._ID as selectedShop.name for selectedShop in nearbyShops"
ng-change=selectShop(selectedShop,{{selectedShop._id}})></select>
и ваша функция будет
$scope.selectShop = function(shop){
// your selected shop id will be $scope.shop._id
}
selectShop()
? и вы хотите хранить идентификатор магазина и название магазина, верно?