0

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

<div ng-controller="UserDataController"/>

我需要这个声明,因为在我的模板的某个地方我有以下代码(我知道这是一种不好的风格,但是......):

<script>

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

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

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

我在这里读到这是因为 ng-controller 声明。当然,当我删除这个声明时,我的模板中脚本标签之间的代码部分被破坏了。所以,我处于有争议的境地——当我修复一件事时,另一件坏了……

我不擅长 js 和 jquery,但在我看来,最简单的方法是在没有这个选择器“[ng-controller=UserDataController]”的情况下以某种方式获得控制器范围。怎么做到呢?这是一个正确的方法吗?

提前致谢!

4

2 回答 2

0

错误:

Unknown provider: dataProvider <- data.... 

意味着您正在尝试使用 Angular 的依赖注入为您注入数据参数。从错误中,我猜没有为数据配置提供程序。因此,您看到的错误。就像罗尼一样,你为什么要这样做似乎有点奇怪

于 2013-08-30T20:36:25.760 回答
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/

于 2013-08-30T19:31:49.023 回答