我正在尝试用ng-init
将$scope.selectedModel
初始化为model1
。然而,以下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
或类似的东西吗?
如果可以的话,最好在控制器中初始化selectedModel
,而不是在HTML中使用ng-init
:该指令可能具有预期的行为。
如果你真的需要的话,你要么至少需要在控制器中定义$scope.selectedModel
,然后在ng-init中设置一个值,要么使用一个对象而不是直接使用值,比如
<div ng-init="model.selectedModel = 'model11'">
(但您仍然需要在控制器中初始化$scope.model
)
请将您的ng if放入repeat:的内部
<div ng-repeat="mod in pTab">
<div ng-repeat="img in mod.galleryImages" ng-if="modelIsActive(mod)">