2015-08-24 2 views
0

Я уже объявил о своем приложении и контроллере в отдельном файле, а ниже: как я загружаю свой контроллер html DOM, но он не показывает это сообщение. Может ли кто-нибудь помочь вам в этом.Load angularJs controller

HTML:

<div id="bnProblemList"> 
    <div ng-controller="problemListCtrl" data-ng-init="init()"> 
     <div ng-view="">this is my message = {{message}}</div> 
    </div> 
</div> 

JS:

html = $j('#bnProblemList').html(); 
$compile(html)(scope); 

Пожалуйста, дайте мне знать, как вводить или загрузить нг-контроллер HTML динамически.

+0

Ваш 'нг-app' установить перед использованием' нг-controller'? Включен ли ваш контроллер в ваш индекс? –

+0

yes Я установил только ng-app как атрибут html .. –

+0

и я динамически добавляю контроллер –

ответ

1

Неправильное объявление вашего контроллера. Вы должны сделать это так:

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

myApp.controller('problemListCtrl', ['$scope', 
    function($scope) { 
     $scope.message = "This is my message :-)"; 
    } 
]); 
+0

Я добавил этот код в свой основной app.js, который выглядит следующим образом: - –

+0

var _versionNumber = "1.0", $ stateProviderRef; var moduleListToLoad = ['ui.router', 'oc.lazyLoad', 'ngRoute']; var enkiApp = angular.module ("enkiApp", moduleListToLoad); enkiApp.controller ('problemListCtrl', ['$ scope', '$ state', '$ compile', function homeController ($ scope, $ state, $ compile) { $ scope.message = 'HOME PAGE'; \t $ scope.init = function() { \t \t консоль.войти ("INIT"); \t}; \t $ scope. $ Apply (function() { \t console.log ("apply"); \t}); $ state.go ('ProblemList'); }]); угловой.элемент (документ) .ready (функция() { angular.bootstrap (документ, ['enkiApp']); }); –

0

Правильный путь, чтобы объявить контроллер в анонимную функцию, и добавить его в модуль. Затем вы должны установить ngApp.

Controller.js

Здесь мы объявим наш контроллер, и создать приложение модуль. Затем мы объявим ctrl нашим контроллером в нашем модуле app.

(function(){ 

    function Controller($scope) { 

    $scope.name = 'toto'; 

    } 

    angular 
    .module('app', []) 
    .controller('ctrl', Controller); 

    })(); 

HTML

<body ng-app='app' ng-controller="ctrl"> 

    <p>My name is {{name}}</p> 

</body> 

И не забудьте включить ваш сценарий тег:

<script src="controller.js"></script> 
0

Вы можете попробовать Как пример ниже: -

Html Страница:

<!DOCTYPE html> 
<html ng-app="MyApp"> 
<head> 
<title> Controller</title> 
<script src="../Js/angular.min.js"></script> 
<script src="../Js/Controller.js"></script> 
</head> 
<body> 
    <div ng-controller="MyFirstController"> 
    {{ Msg }} 
    </div> 
</body> 
</html> 

ControllerJs Страница:

var MyApp=angular.module("MyApp",[]); 
MyApp.controller("MyFirstController",function($scope){ 
    $scope.Msg="Hello First Conroller"; 
}) 
0
i was able to load/ inject controller dynamically by the help of below code 

<div id="bn" ng-controller="myCtrl as vm"> 
    <div ui-view=''></div> 
</div> 

<script> 
    angular.element(document).injector().invoke(function($compile, $state) { 
     $state.go('myCtrl'); 
     var scope = angular.element($j("#bn")).scope(); 
     $compile($j("#bn"))(scope); 
    }); 
</script>