web-dev-qa-db-ja.com

Angular.js:モジュールでコントローラーを作成するには?

モジュールを使用するときにコントローラを定義したい:

angular.module('todoList', [], function () {

}).controller('myCtrl', function ($scope) {
    return function ($scope) {
        $scope.todos = [
            {
                text: "Hello"
            }, {
                text: "World"
            }
        ]
    }

})

次に、モジュールとccontrollerを使用します。

<div ng-controller="myCtrl" ng-app="todoList">  
        <li ng-repeat="todo in todos">
            <span>{{todo.text}}</span>
        </li>>
</div>

しかしそれは何もレンダリングしません、私のコードの何が問題になっていますか?

12
hh54188

コントローラーが間違っています。リターン関数を用意する必要はありません。

angular.module('todoList', [], function () {

}).controller('myCtrl', function ($scope) {

        $scope.todos = [
            {
                text: "Hello"
            }, {
                text: "World"
            }
        ]
})

デモ: Plunker

15
Arun P Johny

公式ドキュメント:

http://docs.angularjs.org/guide/controller

構文:

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

myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
}]);
2
Bijan
var myName1=angular.module("myName",[]);
myName1.controller("nameInfo",["$scope",function($scope){
$scope.name="Rajnish";
$scope.address="Delhi";
}
])
1
Rajnish Bakaria

JS strictモードを使用して、このようにすることもできます-

(function() {
'use strict';
angular.module('listProject', []);
})();

(function() {
'use strict';
angular.module('listProject').controller('MyController', ['$scope', 
  function($scope) {
    console.log("Hello From ListProject Module->My Controller"):

   }

])

})();
0
dprobhat

大した違いはありませんが、これも動作します。

angular.module('todoList', []).
    controller('myCtrl', 
      function ($scope){
       $scope.todos=[{text: "Hello"},{text: "World"}];
     });
0
Otpidus