У меня проблема с двумя блоками выбора, которые связаны с одним объектом. Я создал плункер, но это нормально, но не в моем приложении. В основном я копировал все, начиная с моего кода и заканчивая плункером, и работает там, но не в моем коде. Вот ссылка: plnkrAngularjs два блока выбора, подключенные к объектам одной модели - выбранная опция
app.controller('MainCtrl', function($scope) {
$scope.consoleLog = '';
$scope.sites = [
{name: 'site1', id: 001, datasources:[
{name: 'one', id: 441},
{name: 'two', id: 442},
{name: 'three', id: 443}
]},
{name: 'site2', id: 002, datasources:[
{name: 'four', id: 444},
{name: 'five', id: 445},
{name: 'six', id: 446},
{name: 'seven', id: 447}
]}];
$scope.selectedSiteIndx = 0;
$scope.selectedSite = $scope.sites[$scope.selectedSiteIndx].id;
$scope.selectedDs = $scope.sites[$scope.selectedSiteIndx].datasources[0].id;
$scope.selectedSiteChanged = function (selectedSite){
var siteIndx = $scope.sites.map(function(e){return e.id}).indexOf(selectedSite);
$scope.selectedDs = $scope.sites[siteIndx].datasources[0].id;
$scope.selectedSite = selectedSite;
$scope.selectedSiteIndx = siteIndx;
};
$scope.selectedDsChanged = function(selDs){
$scope.selectedDs = selDs;
$scope.consoleLog += 'selected:'+selDs+', ';
};
});
У меня есть два полей выбора есть. Во-первых, для выбора сайта. Во-вторых, для выбора источника данных. Когда вы выбираете сайт в первом поле, чем второй флажок, он изменит его список на вложенный источник данных из нового объекта. И он работает нормально, без проблем. Вы можете изменить сайт, и новые данные будут заполнены во втором поле. Я хочу иметь выбранный по умолчанию (1-й вариант avialable). Поэтому, когда вы выберете сайт, будет автоматически выбран первый источник данных на сайте. Проблема в моем приложении (по какой-то причине не в plnkr) - это когда я выбираю другой источник данных из box2 и затем меняю сайт в 1-ом ящике. Первая опция по умолчанию не выбрана автоматически. Прежде чем я сменил источник данных, я могу менять сайт много раз, и всегда будет выбран первый вариант в окне источников данных. Но как только я коснусь окна источника данных, он остановлен. Как я уже сказал, вы не можете видеть это на plnkr. Я также заметил, что прослушиватель событий изменения источника данных запускается с источником данных Id = null при смене сайта. Но это произошло только после того, как я коснулся коробки № 2
Любые идеи, почему? Я попробовал много разных опций, выбранных ect. Не могу заставить его работать. Я просто хочу, чтобы первый вариант всегда был выбран.
Используете ли вы ту же версию углов, что и в plnkr? – kasoban
Да. 1.4.3 в моем приложении. Я пробовал и с предыдущей угловой версией, и с тем же. – KrystianC
Если вы действительно уверены, что код контроллера идентичен, посмотрите на свой взгляд, возможно, вы что-то использовали, создав область видимости для ребенка, которую вы упустили, возможно, ввернув свой «$ scope.selectedDs» – kasoban