嵌套控制器,在角度js中单击ng

时间:2015-12-30 18:08:35

标签: javascript jquery angularjs

我有一个Item控制器,用户控制器可以应用于它。所以我创建了Apply控制器来执行此操作,但问题是我有项目视图页面,我必须将项目ID传递给我的Apply控制器的apply方法。

我的页面

<div class="container_12" ng-controller="ItemCtrl" ng-init="profile()">
    <div class="gallery" >
        <ul class="unstyled">
            <h1>{{item.name}}</h1>
            <br>
                <ul>
                    <li>About: {{item.description}}</li>
                </ul>
            </ul>
            <br>
                <div  ng-controller="ApplyCtrl">
                    <button ng-click="apply(item._id)">Show Interest</button>
                </div>
            </div>
        </div>

所以我想嵌套ng-controller,因为我希望项目ID通过,但为此我的控制台显示错误。

Error: [ng:areq] http://errors.angularjs.org/1.4.8/ng/areq?p0=ApplyCtrl&p1=not%20a%20function%2C%20got%20undefined
    at Error (native)
    at http://localhost:8080/vendor/angular/angular.min.js:6:416
    at qb (http://localhost:8080/vendor/angular/angular.min.js:22:131)
    at Qa (http://localhost:8080/vendor/angular/angular.min.js:22:218)
    at http://localhost:8080/vendor/angular/angular.min.js:80:210
    at w (http://localhost:8080/vendor/angular/angular.min.js:60:177)
    at D (http://localhost:8080/vendor/angular/angular.min.js:61:30)
    at g (http://localhost:8080/vendor/angular/angular.min.js:55:105)
    at g (http://localhost:8080/vendor/angular/angular.min.js:55:122)
    at D (http://localhost:8080/vendor/angular/angular.min.js:62:134)(anonymous function) @ angular.js:12520(anonymous function) @ angular.js:9292r.$apply @ angular.js:16157(anonymous function) @ angular.js:1679e @ angular.js:4523c @ angular.js:1677yc @ angular.js:1697Zd @ angular.js:1591(anonymous function) @ angular.js:29013c @ jquery.js:3p.fireWith @ jquery.js:3x.extend.ready @ jquery.js:3q @ jquery.js:3 

有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

短期 - 根据控制台错误,您的AngularJS甚至无法识别ApplyCtrl - 我会确认正在加载实例化您的ApplyCtrl的javascript文件。

长期 - 您实际上要实现的是嵌套视图 - 我强烈建议您查看UI Router,它将完全处理您要实现的目标。