0

モジュールに登録したコントローラーがあります。ただし、モデルを変更できるように、Angular の外部で $scope にアクセスしたいと考えています。たとえば、私は次のことをしたいと思います:

var sentboxCtrl = function ($scope){

    $scope.sent = Sent;
    $scope.deleteIcon = deleteIconSource;
    $scope.flagIcon = flagIconSource;
    $scope.attachmentIcon = attachmentIconSource;

    for(var i = 0; i < $scope.sent.length ; i ++)
    {
        $scope.sent[i]['checked'] = false;
    }

    $scope.delete = function(element)
    {
        for(var i = 0; i < $scope.sent.length; i ++)
        {
            if($scope.sent[i].id == element.id)
            {
                $scope.sent.splice(i,1);
            }
        }

    }

    $scope.deleteChecked = function()
    {
        for(var i = 0; i < $scope.sent.length; i++)
        {
            if($scope.sent[i].checked)
            {
                $scope.sent.splice(i,1);

                // We must account for sent.length changing
                // after splicing so we need to decrement to
                // account for that.
                i --;
            }
        }
    }

    $scope.getModel = function()
    {
        return $scope;
    }

};

sentboxCtrl.getModel を使用してスコープを返すと、通常のコンテキスト外でスコープのプロパティを操作できます。

これどうやってするの?

4

1 に答える 1

0

angular のコンテキスト外でオブジェクトを定義し、コントローラー関数内でその値を $scope に割り当てることができます。

var controllerScope = null;
var sentboxCtrl = function ($scope){
    controllerScope = $scope;
    ...
}

$scope オブジェクトのすべてのプロパティにアクセスできるようになりました。

于 2013-10-16T00:10:15.847 に答える