Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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$scope对象设置别名_Javascript_Angularjs - Fatal编程技术网

Javascript 在控制器中为AngularJS$scope对象设置别名

Javascript 在控制器中为AngularJS$scope对象设置别名,javascript,angularjs,Javascript,Angularjs,不必详细说明原因,我需要在控制器中为$scope提供别名。我希望用户能够注入视图并使其具有相同的效果,而不是注入和装饰$scope 根据我对angular的理解,$scope由$scopeProvider创建,该供应商是angular应用程序配置时注册的工厂。我假设我需要注册一个viewProvider,并将其设置为等于$scopeProvider,但我一直在尝试的东西都没有成功。有什么想法吗 仅供参考:我不是在寻找像['$scope',function(view){…,理想的解决方案是使用['

不必详细说明原因,我需要在控制器中为
$scope
提供别名。我希望用户能够注入
视图
并使其具有相同的效果,而不是注入和装饰
$scope

根据我对angular的理解,
$scope
$scopeProvider
创建,该供应商是angular应用程序配置时注册的工厂。我假设我需要注册一个
viewProvider
,并将其设置为等于
$scopeProvider
,但我一直在尝试的东西都没有成功。有什么想法吗


仅供参考:我不是在寻找像
['$scope',function(view){…
,理想的解决方案是使用
['view',function(view){…
。视图对象的行为与
$scope
、双向绑定等完全相同。

没有
$scopeProvider
,作用域是使用
$new
方法创建的,每个作用域都可以通过继承访问此方法(精确地说是委托)。当您在控制器中请求
$scope
时,
$scope
将使用其父级
$scope
$new
方法动态创建,并在该名称下注入。要为不同的名称调用上述行为,您必须使用角度内部构件。

我能够在我的应用程序配置中解决它ig部分。在我的控制器中,现在我可以使用
$scope
view
,它们将具有相同的含义

   $routeProvider
    .when('/Index', {
        templateUrl: "/views/index.html",
        controller: ['$scope', '$controller', function($scope, $controller){
            $controller("IndexController", {$scope:$scope, view: $scope});
        }]
    })

如果您正在教授
AngularJS
,实际上应该避免使用
$scope
,而使用
控制器作为语法


这也可以解决您的问题:)

使用该别名,您是否希望像$scope一样进行双向绑定?是的。我希望在您希望模拟被动服务的原因上,使用“var view=$scope”扩展具有相同的效果。我可以理解,模拟是主动服务,如到达沙箱外部的http。但范围服务只是存储在其中的内容的容器,在uoir单元测试中的使用方式应与在生产中相同。我们为半技术用户提供了创建简单控制器的工具。一些人说,
$scope
对象是技术性的,容易混淆。我可以通过添加
var view=$scope
来创建相同的效果,但我不这么认为I don’我不想要求用户添加那一行。似乎我应该能够告诉angular将可注入的
视图
视为
$scope
我对你的问题投了赞成票,但避免隐藏你真正想要实现的目标。它改变了一切。但最后你在
视图
中注入了
$scope
cting$scope,以便您可以使用“$scope”或“view”来引用scope对象。这正是我想要做的,让我的真实控制器定义使用“view”而不是“$scope”,让它的意思是相同的。那么你的问题确实问了一些问题,你想要一些其他的东西。这正是我要问的。我想能够用
['view',function(view){…}定义控制器
,视图功能与$scope完全相同。通过对我的配置进行此更改,我现在可以这样做。但我不认为您正在这样做,基本上您正在将
$scope
添加到
视图
,这是正常的变量分配,您可以在控制器中执行此操作itself@Arbiter不客气:)如果你还需要帮助,请告诉我P