変数selectedSubTopicId
があり、subTopic オブジェクトの配列があります: objectiveDetail.subTopics[]
. 各subTopic
オブジェクトにはフィールドがあります subTopicId
これを使用して、トピックの追加ボタンを有効または無効にしたいと思います。ng-disabled で lodash を使用してこの配列をテストし、配列subTopic
のオブジェクト要素subTopicId
にselectedSubTopicId
.
ObjectiveDetail にあるデータのサンプルを次に示します。この場合、subTopics 配列には 1 つの要素しかありません。
{"objectiveDetailId":285,
"objectiveId":29,
"number":1,
"text":"x",
"subTopics":[{"subTopicId":1,
"number":1}]
}
thefourtheye によって提案された私の Angular Controller のコードは次のとおりです。
$scope.checkDuplicateSubTopicId = function (objectiveDetail, sSubTopic) {
if (_.some(objectiveDetail.subTopics, function(currentTopic) {
return _.contains(currentTopic, selectedSubTopicId);
})) {
return true;
} else {
return false;
}
}
クリック機能が表示されていないボタンは次のようになります。
<button data-ng-disabled="checkDuplicateSubTopicId(objectiveDetail, subTopicId)">
Add Topic
</button>
問題は、それがうまく機能しておらず、ボタンが無効になっていることを示していないことです。