Я не можу зрозуміти, чому я не можу прив’язати до виділеного елемента є мій код:
<select ng-model="site" ng-change="getAll()">
<option value="SG1">SG1</option>
<option value="PZ1">PZ1</option>
<option value="NE1">NE1</option>
</select>
getAll () надсилає сповіщення про "сайт", але вар ніколи не оновлюється. $ range.site - це користувач nerver, за винятком getAll ()
$scope.getAll = function () {
alert($scope.site);
}
Якщо я встановив $ domain.site значенням, воно відображається, але ніколи не оновлюйте його
Редагувати: Я забув велику деталь ... Вибір відображається з директивою включення ng
<section id="sectionLeft" ng-include="nav[navId]">
</section>
Відповіді:
1 для відповіді № 1ng-include
створює новий обсяг, який прототипово успадковуєтьсявід вашого контролера. Таким чином, ви спочатку читаєте вибраний варіант з вашого контролера, але коли елемент select записує нову обрану опцію, він закінчує запис у успадковану область.
Ви можете замість цього прив’язати до об'єкта.
Контролер:
$scope.data = { site: "SG1" };
$scope.getAll = function() {
alert($scope.data.site);
}
Шаблон:
<select ng-model="data.site" ng-change="getAll()">
<option value="SG1">SG1</option>
<option value="PZ1">PZ1</option>
<option value="NE1">NE1</option>
</select>
Побачити ця відповідь для більш детальної інформації.
Якщо вам не подобається перемикання на об’єкт, шукайте вгору controller as
синтаксис і зв’язувати безпосередньо з контролером замість $scope
.
0 для відповіді № 2
Я знайшов ваш код, і я міг отримати оновлене значення у вікні попередження.
$scope.getAll = function() {
alert($scope.site);
};