0

非常に新しい Angular で、$destroy メソッドを使用して要素を削除する方法について非常に混乱しています。API ドキュメントは次のとおりです。

http://docs.angularjs.org/api/ng .$rootScope.Scope

私が試したHTMLは次のとおりです。

<div ng-controller="TodosController">
    <div class="tasks" ng-show="todos">
        <ul ng-repeat="todo in todos">
            <li>              
                    <button ng-click="todos.$destroy(todo)">Delete</button>
                    <b>{{todo.name}}</b>                
            </li>
        </ul>
    </div>
</div>

そしてJS:

var myApp = angular.module('myApp', []);

function TodosController($scope) {
    $scope.todos = [{
        name: "Learn angular",
        estimate: 8,
        done: true},
    {
        name: "Install java",
        estimate: 2,
        done: false},
    {
        name: 'Uninstall ruby',
        estimate: 3,
        done: false}];
}

上記のフィドルは次のとおりです。 http://jsfiddle.net/5Mzda/26/

古いバージョンの Angular では、 $remove メソッドを使用して要素を削除できます。

<script type="text/javascript" ng:autobind src="http://code.angularjs.org/0.9.16/angular-0.9.16.js"></script>

<div ng:controller="TodosController">
    <div class="tasks" ng:show="todos">
        <ul ng:repeat="todo in todos">
            <li>              
                <div ng:controller="TodoEditorController">
                    <button ng:click="todos.remove(todo)">Delete</button>
                        <b>{{todo.name}}</b>
                </div>

            </li>
        </ul>
    </div>
</div>

上記はこのフィドルで機能しています:

http://jsfiddle.net/bpTXe/195/

ただし、$destroy()$remove()、およびを使用すると、remove()新しいバージョンの Angular では機能しません。助言がありますか?

4

1 に答える 1

6

$ destroyは、$scopesを破棄するためのものです。

array。$removeはバージョン0.10.6のbubblewrap-cape(2012-01-17)で削除されました

array.spliceを使用できます。

<button ng-click="todos.splice(key,1)">Delete</button>
于 2013-03-19T09:52:08.907 に答える