2015-01-04 79 views
2

[更新] 这是我的一个愚蠢的错字。谢谢dfsq!错误:[ng:areq]参数不是函数,没有定义,在thinkster.io的教程

在SO上有类似的问题,我的代码遵循推荐的答案,所以请不要将其标记为重复。

在我的本地主机我得到以下错误:Error: [ng:areq] Argument 'PostCtrl' is not a function, got undefined

内容app.js的:

/* global app:true */ 
/* exported app */ 
'use strict'; 

var app = angular 
    .module('redjsApp', [ 
    'ngAnimate', 
    'ngCookies', 
    'ngResource', 
    'ngRoute', 
    'ngSanitize', 
    'ngTouch', 
    'firebase' 
    ]) 
    .constant('FIREBASE_URL', 'https://blazing-fire-6602.firebaseio.com/') 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/posts.html', 
     controller: 'PostCtrl' 
     }) 
     .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'AboutCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 

内容脚本/服务/ post.js的:

'use strict'; 

app.factory('Post', function ($firebase, FIREBASE_URL) { 
    var ref = new Firebase(FIREBASE_URL + 'posts'); 
    var posts = $firebase(ref.child('posts')).$asArray(); 
    console.log($firebase(ref.child('posts')).$asArray()); 

    var Post = { 
    all: posts, 
    create: function (post) { 
     return posts.$add(post); 
    }, 
    get: function (postId) { 
     return $firebase(ref.child('posts').child(postId)).$asObject(); 
    }, 
    delete: function (post) { 
     return posts.$remove(post); 
    } 
    }; 

    return Post; 

}); 

内容scripts/posts.js:

'use strict'; 

app.controller('PostsCtrl', function ($scope, Post) { 
    $scope.posts = Post.all; 

    $scope.post = {url: 'http://', 'title': ''}; 

    $scope.submitPost = function() { 
    Post.create($scope.post).then(function() { 
     $scope.post = {url: 'http://', 'title': ''}; 
    }); 
    }; 

    $scope.deletePost = function (post) { 
    Post.delete(post); 
    }; 

}); 

posts.html的内容是:

<div ng-repeat="post in posts"> 
    <a ng-href="{{ post.url }}">{{ post.title }}</a> 
    <a ng-click="deletePost(post)">delete</a> 
</div> 
</div> 
<form ng-submit="submitPost()"> 
    <input type="text" ng-model="post.title" /> 
    <input type="text" ng-model="post.url" /> 
    <input type="submit" value="Add Post" /> 
</form> 
Posts: {{ posts}} <br /> 
Post: {{post}} 

只有HTML渲染,没有相关的JS是rendered.The应用程序使用的自耕农脚手架。帮助将不胜感激!

+0

你可以超您参考不重复的,所以人们可以使用的想法? – halfer 2015-01-04 14:45:50

+0

这是一个错字,因此标记为关闭。 PostsCtrl!= PostCtrl – PSL 2015-01-04 17:02:11

回答

3

你的控制器名称有一个错字:

app.controller('PostsCtrl', ... 

而在路线是

controller: 'PostCtrl' 
相关问题