Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angularjs控制器之外操纵模型?_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 如何在Angularjs控制器之外操纵模型?

Javascript 如何在Angularjs控制器之外操纵模型?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个控制器,我已经向我的模块注册了。但是,我想做的是访问Angular之外的$scope,以便可以更改模型。例如,我想做以下工作: var sentboxCtrl = function ($scope){ $scope.sent = Sent; $scope.deleteIcon = deleteIconSource; $scope.flagIcon = flagIconSource; $scope.attachmentIcon = attachmentIc

我有一个控制器,我已经向我的模块注册了。但是,我想做的是访问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;
    }

};
var sentboxCtrl=函数($scope){
$scope.sent=已发送;
$scope.deleteIcon=deleteIconSource;
$scope.flagIcon=flagIconSource;
$scope.attachmentIcon=attachmentIconSource;
对于(变量i=0;i<$scope.sent.length;i++)
{
$scope.sent[i]['checked']=false;
}
$scope.delete=函数(元素)
{
对于(变量i=0;i<$scope.sent.length;i++)
{
if($scope.sent[i].id==element.id)
{
$scope.sent.splice(i,1);
}
}
}
$scope.deleteChecked=函数()
{
对于(变量i=0;i<$scope.sent.length;i++)
{
如果($scope.sent[i].选中)
{
$scope.sent.splice(i,1);
//我们必须考虑到发送长度的变化
//在拼接之后,我们需要减小到
//这是为什么。
我--;
}
}
}
$scope.getModel=function()
{
返回$scope;
}
};
其中,我使用sentboxCtrl.getModel返回范围,然后可以在正常上下文之外操作范围的属性


如何执行此操作?

您可以在angular上下文之外定义对象,然后在控制器函数内部,将其值指定给$scope:

var controllerScope = null;
var sentboxCtrl = function ($scope){
    controllerScope = $scope;
    ...
}
现在您可以访问$scope对象的所有属性