Я пытаюсь получить keys
от объекта, используя coffeescript, где key
- это определенное значение, но я также получаю свойства функции вместе с собственными свойствами объекта.
При получении свойств функции я получаю эту ошибку, поскольку выражение track by
не существует в этих свойствах функции.
[ngRepeat: dupes] Дубликаты в повторителе не допускаются. Используйте выражение «track by» для указания уникальных ключей. Повторитель: prod in products | track by prod.ProductTypeCode
, дубликат ключа: undefined
Это track by
выражение:
<option ng-repeat="prod in products | track by prod.ProductTypeCode"
value="{{prod.ProductTypeCode}}">{{prod.ProductType}}
</option>
Я указал own key
в цикле for of
, но я все еще получаю такие функции, как isEmpty
и contains
в моем массиве результатов.
Я использую этот for of
цикл.
product for own key, product of $scope.products when key isnt 'RTMT'
Это мой $scope.Products
, который содержит ключи.
{
CK: {
ProductCategoryCode: 'DEP',
ProductCategory: 'Deposit',
ProductTypeCode: 'CK'
},
RTMT: {
ProductCategoryCode: 'RTMT',
ProductCategory: 'Retirement',
ProductTypeCode: 'IRA'
},
SAV: {
ProductCategoryCode: 'DEP',
ProductCategory: 'Deposit',
ProductTypeCode: 'SAV'
},
TD: {
ProductCategoryCode: 'DEP',
ProductCategory: 'Deposit',
ProductTypeCode: 'TD'
}
}
Пока я получаю только CK
, SAV
и TD
, я также получаю это:
Как мне получить Object
типы, а не function
типы в coffeescript?
Используя скомпилированный javascript, он, кажется, работает в этом фрагменте, но показывает функции также в окне отладки Firefox.
// Generated
var hasProp = {}.hasOwnProperty,
indexOf = [].indexOf || function(item) {
for (var i = 0, l = this.length; i < l; i++) {
if (i in this && this[i] === item) return i;
}
return -1;
};
var obj = {
CK: {
ProductCategoryCode: 'DEP',
ProductCategory: 'Deposit',
ProductTypeCode: 'CK'
},
RTMT: {
ProductCategoryCode: 'RTMT',
ProductCategory: 'Retirement',
ProductTypeCode: 'IRA'
},
SAV: {
ProductCategoryCode: 'DEP',
ProductCategory: 'Deposit',
ProductTypeCode: 'SAV'
},
TD: {
ProductCategoryCode: 'DEP',
ProductCategory: 'Deposit',
ProductTypeCode: 'TD'
}
};
console.log(getValues(obj));
function getValues(obj) {
// Generated
var key, product, ref, results;
ref = obj; // $scope.products;
results = [];
for (key in ref) {
if (!hasProp.call(ref, key)) continue;
product = ref[key];
if (key !== 'RTMT') {
results.push(product);
}
}
return results;
}