2015-01-04 85 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' 
相關問題