如何从ng-repeat中删除这个li元素?

时间:2015-05-01 20:29:34

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

在我的列表中,底部的一个div具有removePortfolio功能。此功能的作用是激活ng-hide="tickerRemoved",但仅限于该1个列表项,而不是所有列表项。

HTML Gist: https://gist.github.com/leongaban/cf72e5d0229155dd011f
指令要点: https://gist.github.com/leongaban/22a8feb9dbeea0b90135

<ul ng-show="loadingTickersDone" class="tickers-list">

    <li class="ticker-li"
        ng-repeat="ticker in tickers"
        ng-hide="tickerRemoved"
        ng-class="{'selected':toggleTicker.item == $index}"
        ng-mouseleave="hideTickerOptions()">

        <div class="ticker"
             ng-click="toggleTicker.item = $index;
                       selectTicker(ticker.ticker);
                       revealTickerOptions()">
             {{ticker.ticker}}
        </div>

        <div class="add-to-portfolio"
             ng-show="tickerOptions"
             ng-mouseleave="hideTickerOptions()">

             <div ng-show="addOption"
                  ng-click="addPortfolio(ticker.ticker)">+ Portfolio</div>
             <div ng-show="removeOption"
                  ng-click="removePortfolio(ticker.ticker)">- Portfolio</div>
        </div>
    </li>

</ul>

这是指令中的删除功能:

var vs = $scope;

vs.removePortfolio = function(ticker) {
    this.tickerOptions = false;
    ApiFactory.deleteWatchList(ticker).then(function(data) {
        showMessage(ticker+' removed from portfolio!', data.data.status);
        this.tickerRemoved = true;
    });
};

我在this.tickerRemoved = true;收到错误我认为这是因为链中的范围较低?

enter image description here

例如,我在此函数中使用this并且它工作正常,因为标记/范围中的函数更高:

vs.revealTickerOptions = function() {
    this.tickerOptions = true;

    if (tickerView === 'all') {
        this.addOption    = true;
        this.removeOption = false;
    }
    else if (tickerView === 'port') {
        this.addOption    = false;
        this.removeOption = true;
    }
};

单击<li class="ticker-li"功能时,如何仅删除1 removePortfolio()项?

0 个答案:

没有答案