2013-03-15 2 views
0

Итак, у меня есть некоторый html, который динамически загружается в #panel div в зависимости от того, какой вопрос содержит номер пользователя. Это не весь код, а весь соответствующий код, который я думаю. В любом случае, <input> загружается на страницу, но на самом деле ничего не делает. что мне здесь не хватает? У меня такая же проблема, когда === questionNumber 1, где переплетены переменные просто показать, как {{variable}} и т.д.Динамически загруженный ящик ввода не показывает

var readingController = function (scope, Romanize){ 
     scope.usersRomanization; 
     //alert(scope.usersRomanization); 
} 

var app = angular.module('Tutorials', ['functions', 'tutorials']).controller('getAnswers', function ($scope, $element, Position, Romanize) { 
$scope.sectionNumber = Position.sectionNumber; 
if ($scope.sectionNumber === 0){ 
    $('#panel').html('<div ng-controller="readingController"><input ng-model="usersRomanization"></input></div>'); 
    readingController($scope, Romanize); 
} 

<body ng-controller="getAnswers"> 
    <div id="panel"> 
    </div> 
</body> 
+0

У вас не может быть jQuery в контроллерах. См. [Как мне «думать в AngularJS», если у меня есть фон jQuery?] (Http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a -jquery-фон). – Stewie

+0

Тогда как еще я должен загрузить этот html в страницу на основе questionNumber? Несмотря на то, что это противоречит конвенциям, не следует ли это технически работать? – Tules

ответ

1

Если добавить HTML в DOM, вы должны сказать Угловая до $ скомпилировать. Это должно быть сделано в директиве. Вам нужно будет вводить $compile то сделать что-то вроде этого:

var content = '<div ng-controller=...></div>'; 
var compiled = $compile(content)(scope); 
// then put the content where you want 

Или лучше, определить директиву и использовать template, который будет автоматически скомпилирован для вас Угловое.

Другие альтернативы: ng-include (который будет компилировать загруженный контент для вас) и ng-switch, что позволит вам поместить шаблоны в HTML.

+0

ok, тогда в этом случае, как я динамически загружаю директиву, основанную на вопросе номер? – Tules

+0

Попробуйте ng-include или ng-switch. Трудно сказать, не зная, сколько вопросов у вас есть или где ваши шаблоны идут - это ваши шаблоны в отдельных файлах или вы можете использовать (скрипт) [http://docs.angularjs.org/api/ng. директива: script], чтобы поместить их в ваш Javascript? Если это так, используйте ng-include. С помощью ng-switch вы можете поместить все ваши шаблоны в свой HTML. –

+0

жаль, что я должен был сказать по разделу номер, на данный момент есть только 2 раздела, но будет больше в будущем – Tules

Смежные вопросы