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

Angularjs. Get scope of controller. Unknown provider error

本文关键字:程序 错误 范围 获取 控制器 Angularjs 未知      更新时间:2023-09-26

在index.html页面上,我有以下控制器声明:

<div ng-controller="UserDataController"/>

我需要这个声明,因为在我的模板中有以下代码(我知道这是一个糟糕的风格,但…):

<script>
    var userData = angular.element('[ng-controller=UserDataController]').scope().userData;
...
 </script>

但与此同时,我正在使用资源(REST),并拥有与此类似的代码。在我的情况下,这引发了错误:未知提供程序:dataProvider<-数据,因为我的控制器看起来像:

function UserDataController($scope,data)
{
    $scope.userData = data;
}

我在这里读到,这是因为ng控制器声明。当然,当我删除这个声明时,模板中脚本标记之间的代码部分就断了。所以,我处于一个有争议的境地——当我修理一件东西时,另一件就会坏掉。。。

我不擅长js和jquery,但在我看来,最简单的方法是在没有选择器"[ng controller=UserDataController]"的情况下获得控制器范围。如何做到这一点?这是一种正确的方法吗?

提前感谢!

我认为您试图访问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/

错误:

Unknown provider: dataProvider <- data.... 

意味着您正试图使用angular的依赖项注入来为您注入数据参数。从这个错误中,我猜没有为数据配置提供程序。因此,你看到的错误。和ronnie一样,你为什么要用的方式来做这件事似乎有点奇怪