在我的HTML中用ng-init初始化$scope变量时出现问题

Trouble initializing a $scope variable with ng-init in my HTML

本文关键字:变量 问题 scope HTML 我的 中用 ng-init 初始化      更新时间:2024-06-03

我正在尝试用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)">