我已經檢查了其他類似於我的問題的問題。但是這個問題在各種情況下顯然可能不同。 角茉莉花測試抱怨 類型錯誤:「未定義」不是(評估「fields.forEach」)的對象,在discoverDependentFields茉莉花測試抱怨'undefined'不是對象
這裏是我的discoverDependentFields功能
discoverDependentFields($scope.response.Fields);
function discoverDependentFields(fields) {
fields.forEach(function (field) {
field.DependencyFieldEvaluated = '';
if (field.DependencyField) {
var foundFields = fields.filter(function (fieldToFind) { return fieldToFind.Name === field.DependencyField; });
if (foundFields.length === 1) {
field.DependencyFieldEvaluated = foundFields[0];
}
}
});
}
,並在測試中,我有這個有點
this.controller('MyController', {
'$scope': this.scope,
}
});
this.scope.response.Fields = [
{
Name: "UserIdentity",
Value: {
"FirstName": "John"
},
PropertyName: "User.Identity"
}
];
我用field.DependencyFieldEvaluated的值的函數的指令,這樣
function dependencyMet(field) {
var dependentField = field.DependencyFieldEvaluated;
var met = compareToDependencyValue(field, dependentField.Value);
return met;
}
我不知道它爲什麼抱怨
只是猜測這裏,但考慮到它的樣子'discoverDependentFields'被立即執行,應該不是你設置了'scope.response.Fields' *之前*運行'this.controller('MyController'...)'? – Phil