У меня есть этот html-код:
<select class="" ng-model="livre_selection" material-select multiple watch>
<option ng-repeat="livre in livres">{{livre.titre }}</option>
</select>
могу ли я получить "livre_selection" в контроллере и поместить его в переменную внутри контроллера, чтобы я мог ее использовать?
спасибо
да, вы можете получить это. Следуйте примеру example.check ng-change и ng-click. Вы можете сделать это, используя обе или только одну функцию.
<html>
<body ng-app="myApp" ng-controller="yourCtrl">
<select ng-model="livre_selection" ng-change="a();" material-select multiple watch>
<option ng-repeat="livre in livres">{{livre.titre }}</option>
</select>
<input type="button" value="save" ng-click="b();">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('yourCtrl', function($scope) {
$scope.livres=[{titre:"a"}];
var selectedValue;
$scope.a = function(){
selectedValue = $scope.livre_selection;
}
$scope.b = function(){
alert(selectedValue);
}
});
</script>
</body>
</html>
Да, AngularJS имеет двустороннюю привязку данных. то, что вы добавили в ng-модель, будет доступно в контроллере через объект $scope
. в вашем случае вы можете получить к нему доступ через $scope.livre_selection
Пытаться
$scope.livre_selection = '';
Поскольку $ scope - это в основном карта, но более целесообразным было бы использовать именование переменной upperCase, например:
$scope.liveReSelection = '';
После этого вы сможете получить доступ к этой переменной в своем контроллере.
Вы можете прочитать больше здесь.
контроллер
$scope.livre_selection = ""; <br>
var localVariable = "";
$scope.changeValue=function(changedVal){ localVariable = changedVal; }
HTML
Напишите ng-изменение в html рядом с контроллером. <select class="" ng-change="changeValue(livre_selection)" ng-model="livre_selection" material-select multiple watch> <option ng-repeat="livre in livres">{{livre.titre }}</option> </select>