该脚本有效,但如果我测试它则无效。
Jasmine :
describe("myApp", function(){
beforeEach(module("mymod"));
describe("maincontroller", function(){
var scope;
var ctrl;
var compile;
var html;
beforeEach(inject(function($rootScope, $controller, $compile){
scope = $rootScope.$new();
ctrl = $controller("maincontroller", {$scope:scope});
compile = $compile;
html = angular.element('<ul id="listONE"><li class="{{person.isSel}}" ng-repeat="person in people" ng-click="selPersonToChange($index)">{{person.name +" - "+ person.city}}</li></ul>');
compile(html)(scope);
scope.$digest();
}));
it("Is selPersonToChange() working?", function(){
expect(scope.selPersonToChange(ind)).toEqual(true);
});
});
最佳答案
您尚未在该 JavaScript 文件中的任何位置定义“ind”。 ng-click 应该可以工作,因为 $index 是在 ng-repeat 中定义的。但您的测试有“ind”声明。
关于javascript - Jasmine 和 Angularjs - 为什么 $index 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598446/