我正在尝试使用$scope.selectedModel
将model1
初始化为ng-init
。但是,以下HTML无法实现此目的:
<div class="productImage">
<div class="imageGallery" ng-init="selectedModel='model1'">
<div ng-repeat="mod in pTab" ng-if="modelIsActive(mod)">
<div ng-repeat="img in mod.galleryImages">
<img class="overviewProductImage" ng-src="{{img.image}}" ng-if="productImageIsActive(img, $index)"/>
</div>
</div>
</div>
</div>
这里是使用selectedModel的modelIsActive方法:
$scope.modelIsActive = function (tab) {
return tab.model== $scope.selectedModel;
}
最终我会想要使用ng-init="selectedModel= mod.model"
,但是当它没有用时我替换了简单的字符串'model1'
,发现它仍然没有初始化selectedModel
到那个字符串。
如何使用ng-init设置$scope.selectedModel
?或者我应该使用其他东西?我需要使用$watch
或类似的东西吗?
答案 0 :(得分:0)
如果可以,最好在您的控制器中初始化selectedModel
,而不是使用ng-init
初始化HTML:此指令可能具有已执行的行为。
如果你真的需要,你要么至少要在你的控制器中定义$scope.selectedModel
,然后在ng-init中设置一个值,或者使用一个对象而不是直接一个值,比如
<div ng-init="model.selectedModel = 'model11'">
(但您仍然需要在控制器中初始化$scope.model
)
答案 1 :(得分:0)
请将你的ng-if放入重复内部:
<div ng-repeat="mod in pTab">
<div ng-repeat="img in mod.galleryImages" ng-if="modelIsActive(mod)">