Вложенный контроллер с ng-click в угловых js

0

У меня есть контроллер элемента, и пользовательский контроллер может применить к нему. Так что я создал приложение "Применить контроллер", но проблема в том, что у меня есть страница просмотра позиций. Мне нужно передать элемент id моему методу применения контроллера 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 потому что я хочу, чтобы идентификатор элемента проходил, но для этого на моей консоли отображается ошибка.

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 ответ

1
Лучший ответ

Краткосрочный - на основе ошибки консоли появляется, что ApplyCtrl даже не распознается вашим AngularJS - я бы подтвердил, что загружается файл javascript, который создает экземпляр вашего приложения ApplyCtrl.

Долгосрочный - то, что вы по существу пытаетесь достичь, - это вложенный взгляд - я настоятельно рекомендую посмотреть на UI Router, который будет обрабатывать именно то, чего вы пытаетесь достичь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню