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