/ / ngModel не зобов'язує вибрати параметр - angularjs

ngModel не зв'язується, щоб вибрати параметр - angularjs

Я не можу зрозуміти, чому я не можу прив’язати до виділеного елемента є мій код:

<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 для відповіді № 1

ng-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);
};

Робоча скрипка