ngTagsInput не привязан к модели
Я только начал использовать угловую библиотеку ngTagsInput, и у меня возникли проблемы с обновлением модели. Я показываю ввод тега в ionicPopup и, что интересно, запускается событие добавления тега, которое показывает, что $scope.sites[] заполнен.
Когда я вызываю $scope.test(), массив пуст. Единственный контекст, в котором он содержит значение, - это метод, связанный с событием добавления тега.
Вот упрощенный пример контроллера:
$scope.sites = [];
$scope.addSites = function() {
// this works
console.log("In addSites");
console.dir($scope.sites);
}
$scope.test = function() {
// in any other method $scope.sites is empty
console.dir($scope.sites);
}
На мой взгляд, элемент тега определен как:
<tags-input ng-model="sites" add-on-space="true" placeholder="Add Site Numbers" on-tag-added="addSites($tag)"></tags-input>
Я нахожу невероятно странным, что переменная $ scope может содержать значения, которые я ожидаю в контексте библиотечного события, но не вне этого.
Есть ли что-то особенное, что нужно сделать с точки зрения связывания? Что касается документации, я не вижу, что мне не хватает. Любые предложения будут высоко ценится.
1 ответ
После долгих проб и ошибок я решил эту проблему, выполнив следующее.
<tags-input ng-model="$parent.sites" add-on-space="true" placeholder="Add Site Numbers" on-tag-added="addSites($tag)"></tags-input>
Я уже передавал "scope: $scope" в моем вызове $ionicPopup({}), но без ng-модели, установленной на "$parent.sites", это связывалось неправильно.
Надеюсь, это спасет кого-то в будущем от выдергивания волос!