2014-10-09 2 views

답변

1

$scope.awesomeThingsarrayname 속성이 없습니다.

여기에 몇 가지 동물을 추가했습니다.

angular.module('dcWithAngularApp') 
    .controller('MainCtrl', function ($scope,$http,test) { 

    $scope.awesomeThings = [ 
     { name: "Dog" }, 
     { name: "Cat" } 
    ]; 

    $scope.getServiceDetails = function(serviceDetails) 
    { 
     console.log('Called') 
     $scope.publicName = serviceDetails.name 
    } 
}); 

편집 :

내가 함께 당신의 편집을 해결하는 JSFiddle을 넣어. 요소는 '이름'속성을 가지고 있지 않도록

http://jsfiddle.net/HB7LU/7191/

+0

nope'awesomeThings'는 나머지가 호출 된 후 json으로로드됩니다. – batman

+1

질문에 'awesomeThings'의 값을 입력하십시오. –

+0

님이 patrick 질문을 편집했습니다. – batman

-1

귀하의 주요 문제는 이것이다 :

$scope.publicName = serviceDetails.name 

$scope.publicName = serviceDetails; 

$ scope.awesomeThings 문자열이 아닌 객체의 배열 할 필요가있다. 문자열 배열을 반복하고 문자열을 getServiceDetails 메소드에 전달하므로 'serviceDetails'는 문자열입니다.

관련없는 경고로, 당신이 div 안에 tr을 사용하고있는 것을 봅니다. tr는 테이블, thead, 또는 tbody 안에 있어야합니다.

+0

downvote를 설명 할 수 있습니까? – Tom

+0

내 것과 같은 대답이지만 당신의 것이 더 완벽합니다. 나는 Tom의 downvote를 이해하지 못한다. –

0

$ scope.awesomeThings 문자열의 배열입니다.

누락 된 항목이 있습니다. 당신의 console.log 다음에 코드 실행을 중지시킬 수 있습니다.

개체를 기록하는 데 도움이 될 수 있습니다.

<div ng-controller="MainCtrl"> 
<tr data-ng-repeat="element in awesomeThings"> 
     <div ng-if="$even"> 
      <td ng-click="getServiceDetails(element)"> 
       <a href="#"> 
        {{element.name}} 
       </a> 
      </td> 
     </div> 
    </tr> 

    //after some html 
    <span >{{publicName}}</span> 
</div> 



angular.module('dcWithAngularApp') 
    .controller('MainCtrl', function ($scope,$http,test) { 
    $scope.awesomeThings = {"serviceDetail":{"name":"batman"}}; 

    $scope.getServiceDetails = function(serviceDetails) 
    { 
     console.log(serviceDetails); 
     $scope.publicName = serviceDetails.name; 
    } 
    }); 
관련 문제