Загрузить контроллер angularJs

0

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

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);

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

  • 0
    Установлено ли ваше ng-app перед использованием ng-controller ? Ваш контроллер включен в ваш индекс?
  • 0
    да, я установил ng-app только как атрибут html
Показать ещё 2 комментария

4 ответа

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', функция homeController ($ scope, $ state, $ compile) {$ scope.message = 'HOME PAGE'; $ scope. init = function () {console.log ("init");}; $ scope. $ apply (function () {console.log ("apply");}); $ state.go ('ProblemList');} ]); angular.element (document) .ready (function () {angular.bootstrap (document, ['enkiApp']);});
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>
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";
})

Ещё вопросы

Сообщество Overcoder
Наверх
Меню