簡體   English   中英

無法在我的HTML中使用ng-init初始化$ scope變量

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

我想初始化$scope.selectedModelmodel1ng-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或類似的東西嗎?

如果可以,最好在控制器中初始化selectedModel ,而不是使用ng-init在HTML中ng-init :此指令可以具有已執行的行為。

如果你真的需要,你需要至少在你的控制器中定義$scope.selectedModel然后在ng-init中設置一個值,或者使用一個對象而不是直接一個值,比如

<div ng-init="model.selectedModel = 'model11'">

(但您仍需要在控制器中初始化$scope.model

請把你的ng-if放到重復內部:

<div ng-repeat="mod in pTab">
        <div ng-repeat="img in mod.galleryImages" ng-if="modelIsActive(mod)">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM