gpt4 book ai didi

javascript - Angular ng-repeat 在 Jasmine 测试中不起作用

转载 作者:行者123 更新时间:2023-11-29 19:34:11 25 4
gpt4 key购买 nike

我试图让 ng-repeat 在 Angular 指令测试中工作,但是当更新 $scope 变量和调用 $digest() 时, View 不会更新。

'use strict';

describe('Asset tests', function() {
var $compile,
$rootScope,
$scope,
$timeout,
templateHtml = '<span ng-repeat="asset in assets">{{asset.id}}</span>',
view;

beforeEach(function() {
module('my.module');
inject(function(_$compile_, _$rootScope_, _$timeout_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$timeout = _$timeout_;
$scope = $rootScope.$new();

$scope.assets = [];
$scope.selectedItems = [];
$scope.deleteAsset = function() {
console.log('yay');
};
view = angular.element(templateHtml);
$compile(view)($scope);
$scope.$apply();
});
});

describe('Testing some stuff', function() {
it('should test some stuff', function() {
for(var i = 0; i < 3; i ++) {
$scope.assets.push({id:i, name: 'Rad ' + i});
};
$scope.$digest();
console.log(view);
console.log(jQuery('span').length);
});
});
});

日志语句输出:

LOG: {0: <span ng-repeat="assets in assets">{{asset.id}}</span>, length: 1}   
LOG: 56

最佳答案

我不认为你的 html 模板编译正确。它说 assets in assets 应该是 asset in assets。试试看。

另外,我认为你没有编译正确的东西。您正在编译文本模板而不是实际的 View 元素。

view = angular.element(templateHtml);
$compile(view)($scope);

关于javascript - Angular ng-repeat 在 Jasmine 测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25942666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com