2016-07-13 2 views
1

저는 정직하게 anglejs를 처음 접했고 이것은 정말 어리석은 질문처럼 들릴 수도 있습니다. 나는 나의 페이지에 MD-목록을 배치하기 위해 노력하고있어 :javascript로 각도 js 호출하기

function apply(list){ 
      angular.module('App', ['ngMaterial']).controller('ListCtrl', function($scope, $mdDialog) { 
        $scope.people = list; 
        $scope.goToPerson = function(person, event) { 
         $mdDialog.show(
         $mdDialog.alert() 
          .title('Navigating') 
          .textContent('Inspect ' + person) 
          .ariaLabel('Person inspect demo') 
          .ok('Neat!') 
          .targetEvent(event) 
        ); 
        }; 
       }); 
      } 
     } 

HTML :

<md-list ng-controller="ListCtrl" ng-cloak> 
       <md-subheader class="md-no-sticky">Now online</md-subheader> 
       <md-list-item ng-repeat="person in people" md-ink-ripple ng-click="goToPerson(person.name, $event)" class="noright"> 
        <p style="color:white; border-bottom: 1px solid rgba(225,225,225,.2); height:45px; line-height:45px">{{ person.uuids }}</p> 
        <md-icon md-svg-icon="social:android" aria-label="android "></md-icon> 
       </md-list-item> 
      </md-list> 

도없이 내가 할 수있을 싶어 .. 그것이 작동하지 않는 말을 apply() 함수를 호출하여 md-list를 컴파일하십시오. 일반적으로 페이지 시작에로드해야하지만 그걸 정말로 원하지 않는다면 .. 아무도 도와 줄 수 있습니까?

답변

0

각도 응용 프로그램을 올바르게 초기화하지 않았을 수도 있습니다. 자동 초기화를 위해 페이지 어딘가에 ng-app="App" 속성 (예 : html body 태그)이 있어야합니다. 그렇지 않으면 각도 어플리케이션을 수동으로 부트 스트랩해야합니다.

각도 응용 프로그램 (자동 또는 수동) 초기화에 대한 자세한 내용은 Angular Docs에서 확인할 수 있습니다.


수동 초기화가있는 apply(list)의 버전입니다. 이

function apply(list){ 
    // define the angular module to be initialized 
    angular 
    .module('App', ['ngMaterial']) 
    .controller('ListCtrl', function ($scope, $mdDialog) { 
    $scope.people = list; 
    $scope.goToPerson = function(person, event) { 
     $mdDialog.show(); 
     $mdDialog.alert() 
     .title('Navigating') 
     .textContent('Inspect ' + person) 
     .ariaLabel('Person inspect demo') 
     .ok('Neat!') 
     .targetEvent(event); 
    }; 
    }); 
    // initialize the angular module (this will render the list in the end) 
    angular.element(document).ready(function() { 
    angular.bootstrap(document, ['App']); 
    }); 
} 
+0

를 사용할 때 ng-app이 완전히 속성을 제거해야합니다 그 tag..and 예, body 태그에 너무 .. <몸의 온로드 = "로드()"NG-응용 프로그램 = "응용 프로그램을해야합니까 "> –

+0

사실, 만약 당신이'ng-app' 태그를 사용하여 자동적으로 부트 스트랩을하고 나중에'apply (list)'함수를 호출하면 아무 일도 일어나지 않는다는 것을 의미합니다. 새로운 각도 모듈을 초기화하고 있지만 아무 것도하지 않습니다. 자동 초기화를 수행하는 대신 속성을 제거하고 수동 부트 스트랩 코드를 apply() 함수의 끝에 추가하십시오. – burnedikt

+0

페이지로드 이벤트에서이 문제가 발생합니다. angular.js : 13550Error : [ng : areq] http://errors.angularjs.org/1.5.5/ng/areq?p0=ListCtrl&p1=not%20a%20function% 2C % 20got % 20undefined 이것이 문제가 될 수 있습니까? :/ –