我试图在 ui 加载时调用 Controller ,但出现以下错误。
angular.js:9778 Error: [ng:areq] Argument 'questionsCtrl' is not a function, got string
http://errors.angularjs.org/1.2.16/ng/areq?p0=questionsCtrl&p1=not%20aNaNunction%2C%20got%string
at http://127.0.0.1:60668/js/angular.js:78:12
at assertArg (http://127.0.0.1:60668/js/angular.js:1443:11)
at assertArgFn (http://127.0.0.1:60668/js/angular.js:1453:3)
at http://127.0.0.1:60668/js/angular.js:7131:9
at http://127.0.0.1:60668/js/angular-ui-router.js:2797:28
at nodeLinkFn (http://127.0.0.1:60668/js/angular.js:6579:13)
at compositeLinkFn (http://127.0.0.1:60668/js/angular.js:5986:15)
at publicLinkFn (http://127.0.0.1:60668/js/angular.js:5891:30)
at updateView (http://127.0.0.1:60668/js/angular-ui-router.js:2733:23)
at http://127.0.0.1:60668/js/angular-ui-router.js:2697:11
我的代码是:
app.js
(function () {
"use strict";
var app = angular.module("autoQuote",["ui.router"]);
app.config(["$stateProvider","$urlRouterProvider", function($stateProvider,$urlRouterProvider){
$urlRouterProvider.otherwise("/");
$stateProvider
.state("step1", {
url : "/",
templateUrl : "step1.html",
controller: "questionsCtrl"
})
.state("step2", {
url : "/step2",
templateUrl : "step2.html",
controller: "questionsCtrl"
})
}]
);
}());
问题Ctrl.js
(function () {
"use strict";
angular
.module("autoQuote")
.controller("questionsCtrl",["questionsCtrl"]);
function questionsCtrl() {
console.log('here in questionsCtrl');
}
}());
最佳答案
定义 Controller 时需要引用该函数。
.controller("questionsCtrl", questionsCtrl);
^^^^^^^^^^^^^ : Function reference, not a string
controller()
的第一个参数是 Controller 的名称,第二个参数是映射。
我建议使用以下最小安全语法。
.controller('questionsCtrl', ['$scope', function ($scope) {
}]);
引用 Controller 功能
.controller('questionsCtrl', ['$scope', questionsCtrl]);
function questionsCtrl($scope) {
console.log('In questionsCtrl');
}
关于javascript - Angular js错误: Argument 'questionsCtrl' is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071288/