Angularjs。获得控制器的范围。未知的提供程序错误

时间:2013-08-30 18:46:02

标签: javascript jquery angularjs

在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]'。怎么做到呢?这是一种正确的方法吗?

提前致谢!

2 个答案:

答案 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一样,为什么你按照你的方式做这件事似乎有点奇怪