2015-01-13 1 views
0

я следующие:Заполнение данных в скрытый DIV с угловой

<div class="panel"> 
    <form id="form" method="post" ng-submit="submit"> 
    <select ng-controller="CountryController" ng-model="model.country" ng-options="country.Id as country.Name for country in model.countries"> 
     <option value="">Country</option> 
    </select> 
    </form> 
</div> 

div.panel { 
    display: none;  
    overflow: hidden; 
    position: relative; 
} 

Панели изначально скрыта и у меня есть кнопка, чтобы показать/скрыть.

Поскольку панель изначально скрыта, выбор не заполняется.

Если я удаляю дисплей: ни один из панелей, то выбор заполняется.

Как я могу это решить?

+0

Вы хотите иметь выбор не заполняется в любом случае? Или есть выбор, заполненный в любом случае? – SoEzPz

+0

Я хочу, чтобы он всегда заполнялся –

+0

Что предоставляет вам информация о том, что она на самом деле НЕ заполнена, когда она скрыта? – SoEzPz

ответ

0

Вот ссылка на jsFiddle

Your code on jsFiddle

В примере jsFiddle избранных заполняется ли он скрыт или нет. Просто копайте в DOM, и вы увидите значения. Я собирался рекомендовать использовать ng-show, поэтому включил его в jsFiddle, но он неактивен. Я думал, что это возможно из-за вложенного контроллера, но в jsFiddle он работает. Может быть, играть с этим jsFiddle поможет. Можете ли вы предоставить больше кода или копию своего фактического DOM и что он показывает?

<div ng-app="myApp"> 
    <div ng-controller="MyCtrl"> 
    <div ng-show="showMe" class="panel"> 
     <form id="form" method="post" ng-submit="submit"> 
     <select ng-model="model.country" ng-options="country.Id as country.Name for country in countries"> 
     <option value="">Country</option> 
    </select> 
    </form> 
</div> 

var app = angular.module('myApp', []); 

app.controller('MyCtrl', function ($scope) { 
// on load set default of ng-show 
// $scope.showMe = false; 
    $scope.countries = [{Id:0, Name: 'USA'},{Id:1, Name: 'China'}]; 

// When you are ready to show the select, just run a function that sets showMe to true. 
}); 

app.controller('CountryController', function($scope){ 
    $scope.countries = [{Id:0, Name: 'USA'},{Id:1, Name: 'China'}]; 
}); 

UPDATE: Вот рабочий plunker с Angularjs-selectize работы. Тем не менее, поведение такое же, как вы заявили. Просматривая selectize.js, он создает свои собственные шаблоны и, вероятно, добавляет и удаляет их по мере необходимости. Вот почему я пытаюсь получить больше информации о том, что вам действительно нужно. Давайте поиграем с этим и посмотрим, что вам нужно. Или, может быть, вы можете получить то, что вам нужно от этого плункера?

updated plunker

+0

Пожалуйста, посмотрите мой последний комментарий. Я также использую https://github.com/EvanOxfeld/angular-selectize.js/tree/master директиву и http://brianreavis.github.io/selectize.js/, и это похоже на то, что это не работает, когда div скрыт. Любая идея почему? –

+0

Я вижу. Есть ли какой-либо родительский элемент DOM, в который вставляется элемент select, который использует ng-if? – SoEzPz

+0

ng-if не загружается с начальной загрузкой DOM, но только после того, как его условие истинно; что означает, что какой-то код может смотреть на него. Я буду играть с этими предметами, которые вы упомянули в скрипке, и вернуться к вам. – SoEzPz