首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数foo(param) {告警(“foo调用”);}和$scope.foo =函数(Param){告警(“foo”);};

问函数foo(param) {告警(“foo调用”);}和$scope.foo =函数(Param){告警(“foo”);};
EN

Stack Overflow用户
提问于 2014-09-16 06:16:00
回答 2查看 150关注 0票数 0

我想我和其他许多人一样,在AngularJS上也有类似的问题。我修复了之前的错误消息(无法从测试描述块中调用控制器函数),并得到了新的错误。 错误: ng:areq参数'fooController‘不是函数,得到了未定义的 我已经看过其他文章了,但还是不能改正。 所以我的控制器就像..。 ‘使用严格’;var应用= angular.module('MyApp','MyAppControllers');var appControllers =angular.module(‘MyAppController,[]);appControllers.controller('fooController','$scope',函数($scope) { function (Param){警告(“foo调用”);}}; 我的控制器规格是..。 ‘使用严格’;描述(‘fooController’,函数() { var $scope,$controller;beforeEach(函数($rootScope,$controller) { $scope = $rootScope.$new ();ctrl = $controller('fooController',{ $scope:$scope });});它(“应该写foo调用”,函数(){ $scope.foo();});}; 为什么总是说fooController不是函数?? 谢谢大家。

旧邮报编辑。请您阅读下面的文章(我的新问题?:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-16 06:22:24

变更控制器

代码语言:javascript
复制
appControllers.controller('fooController', ['$scope', function ($scope) {

//add your function within scope
$scope.foo = function(){
 alert("foo called");
}
}]);
票数 0
EN

Stack Overflow用户

发布于 2014-09-16 07:21:25

井。我当时很傻。我没有在描述之后放进去。

所以我现在用以下方法解决这个问题:

代码语言:javascript
复制
'use strict';

describe('fooController', function () {
    **beforeEach(module('MyApp'))**;
    var $scope, ctrl;

    beforeEach(inject(function ($rootScope, $controller) {
        $scope = $rootScope.$new();
        ctrl = $controller('fooController', { $scope: $scope });
    }));

    it("should write foo called", function () {
        $scope.foo("aa");
    });
});

和控制器..。

代码语言:javascript
复制
'use strict';

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

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

appControllers.controller('fooController', ['$scope', function ($scope) {
    function foo(param) {
        alert("foo called");
    }
}]);

如果可以的话,我现在想问一下我原来的问题。

问题是,函数foo不能从controllerSpec的测试块TypeError中看到:未定义不是函数

我看到一个帖子说函数是私有的,应该把函数转换成l。

代码语言:javascript
复制
$scope.foo = function(param){alert("foo");};

但是“严格使用”禁止像上面那样的转动功能。

我想知道其他人对这个问题做了什么?

再次感谢您。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25861805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档