在index.html页面上,我有以下控制器声明:
<div ng-controller="UserDataController"/>
我需要这个声明,因为我的模板中的某个地方有以下代码(我知道这是一种不好的风格,但是......):
<script>
var userData = angular.element('[ng-controller=UserDataController]').scope().userData;
...
</script>
但与此同时,我正在使用资源(REST),并且具有与此one类似的代码。这引发了我的错误:未知的提供者:dataProvider&lt; - 数据,因为我的控制器看起来像:
function UserDataController($scope,data)
{
$scope.userData = data;
}
我读过here这是因为ng-controller声明。 当然,当我删除此声明时,模板中脚本标记之间的代码部分就会被破坏。所以,我处于有争议的情况 - 当我修理一件事,另一件事破了......
我在js和jquery中并不强大,但在我看来,最简单的方法就是以某种方式得到控制器范围而不使用这个选择器'[ng-controller = UserDataController]'。怎么做到呢?这是一种正确的方法吗?
提前致谢!
答案 0 :(得分:0)
我认为你试图访问你的userData
对象都错了。要访问userData
对象,只需在页面上某个控制器范围内的{{userData}}
处进行操作即可。例如
<div ng-app>
<div ng-controller="UserDataController">
<input type="text" ng-model="userData" />
<div ng-model="userData">User data is: {{userData}}</div>
</div>
</div>
然后你的JS
function UserDataController($scope)
{
$scope.userData = '';
}
检查这个小提琴:http://jsfiddle.net/N4MQ4/2/
答案 1 :(得分:0)
错误:
Unknown provider: dataProvider <- data....
意味着您正在尝试使用angular的依赖注入为您注入数据参数。从错误中,我猜测没有为数据配置提供程序。因此,你看到的错误。像ronnie一样,为什么你按照你的方式做这件事似乎有点奇怪