簡體   English   中英

稍后以角度引用元素

[英]Reference an element later in angular

我有兩個圖像,您必須選擇其中一個,並且類會根據您使用ng-click選擇的更改。 在繼續下一步,我創建一個對象並存儲對剛剛選擇的內容的引用:

$scope.cabinetDetails.cabinetType = {
    name: $scope.currentElement.obj.name,
    image: $scope.currentElement.obj.image,
    ref: $scope.currentElement
};

$scope.currentElement是我選擇的任何圖像,我想我以后可以通過以下方式訪問它: $scope.cabinetDetails.cabinetType.ref

假設我在第二步,我想改變第一步。 我點擊我的面包屑返回,我再次看到第一步(這很好)。 我想要發生的是班級改變到其選定的狀態。

在加載第一步時,我這樣做:

if ($scope.cabinetDetails.cabinetType != null)
{
    $scope.currentElement = $scope.cabinetDetails.cabinetType.ref;
}

我想這會預先選擇我之前的圖像,因為我的ng-repeatng-class部分進行了簡單的檢查:

<div ng-repeat="obj in currentObject">
    <div class="img-select" ng-click="setActive(this)" ng-class="{itemSelected : isActive(this)}">
      <div align="center">
        <img ng-src="resources/images/aventos/{{obj.image}}" />
      </div>
      <div class="img-title">{{obj.name}}</div>
    </div>
</div>

isActive()函數也很簡單:

$scope.isActive = function(element)
{
    return $scope.currentElement === element;
}

我一直試圖避免發布一個問題,但我似乎無法想出這個問題。 這就像我的參考無效

一個問題是你在html模板中看到的是在多種方法中使用this this將引用ng-repeat的當前范圍對象。

假設您正在迭代數組,可以更改此行

<div class="img-select" ng-click="setActive(this)" ng-class="{itemSelected : isActive(this)}">

<div class="img-select" ng-click="setActive(obj)" ng-class="{itemSelected : isActive(obj)}">

還要通過調試方法驗證方法setActiveisActive是否正在處理對象而不是作用域實例。

問題出在this關鍵字上。 this不能從模板傳遞。

而不是引用元素,退后一步並引用轉發器中的基礎項。 嘗試改變thisobj (在你的對象ng-repeat="obj in currentObject"

ng-click="setActive(obj)" ng-class="{itemSelected : isActive(obj)}

暫無
暫無

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

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