Czy _lodash może przetestować tablicę, aby sprawdzić, czy element tablicy ma pole o określonej wartości?
Mam zmiennąselectedSubTopicId
i mam tablicę obiektów subotopowych:objectiveDetail.subTopics[]
. KażdysubTopic
obiekt mapole subTopicId
Chciałbym użyć tego, aby włączyć lub wyłączyć przycisk Dodaj temat. Czy mogę użyć lodash w ng-disabled, aby przetestować tę tablicę i zgłosić true, jeśli w ogólesubTopic
element obiektu tablicy masubTopicId
to jest równeselectedSubTopicId
.
Oto przykład danych, które są w ObjectDetail. W tym przypadku jest tylko jeden element w tablicy subTopics.
{"objectiveDetailId":285,
"objectiveId":29,
"number":1,
"text":"x",
"subTopics":[{"subTopicId":1,
"number":1}]
}
Oto kod w moim Angular Controller sugerowany przez thetourtheye:
$scope.checkDuplicateSubTopicId = function (objectiveDetail, sSubTopic) {
if (_.some(objectiveDetail.subTopics, function(currentTopic) {
return _.contains(currentTopic, selectedSubTopicId);
})) {
return true;
} else {
return false;
}
}
Mój przycisk z nie pokazaną funkcją kliknięcia wygląda tak:
<button data-ng-disabled="checkDuplicateSubTopicId(objectiveDetail, subTopicId)">
Add Topic
</button>
Problem polega na tym, że nie działa całkiem, a przycisk nie jest wyłączony.