handlebars example documentacion javascript angularjs modularity

javascript - example - Angularjs Argument no es una función tiene cadena



javascript angular (1)

Soy un novato en angularjs. Estoy creando una aplicación donde mi página de inicio tendrá una lista de publicaciones. Pensé en usar angularjs para encuadernar en dos direcciones solo para esa página. Comencé con una página de muestra, pero encontré problemas aquí.

Mi página de muestra. Estoy usando ng-app solo para este div, ya que no quiero que angularjs interactúe con ningún otro aspecto de la página.

<div ng-app="posts"> <ul class="post_list" ng-controller="PostController"> <li ng-repeat="post in posts"> {{post.title}} {{post.description}} </li> </ul> </div>

Tengo un archivo app.js que tiene

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

y un archivo postcontroller.js con

(function(angular, app) { // Define the Controller as the constructor function. console.log(app); console.log(angular); app.controller("PostController",["$scope"], function($scope) { $scope.posts = [ {"title":"asdf", "description":"describe"}, {"title":"second one", "description":"second describe"}, ]; }); })(angular, app);

Cuando carga mi página de inicio. estoy obteniendo

Error: el argumento "PostController" no es una función. tiene cadena [ruta googlecdn] angular.min.js: 16

Que me estoy perdiendo aqui. Por favor ayúdame ya que estoy totalmente confundido. Soy nuevo en angularjs y también en javascript.


El problema está en la forma en que está declarando su controlador. Deberías hacerlo como se muestra abajo:

app.controller("PostController",["$scope", function($scope) { $scope.posts = [ {"title":"asdf", "description":"describe"}, {"title":"second one", "description":"second describe"}, ]; }]);

Tenga en cuenta que el segundo argumento es una matriz con una cadena $scope y una función como elementos de la matriz. Esta es una sintaxis adecuada para escribir código de minification-safe.