다음 특성 지시문을 사용합니다.ng-repeat 안팎에서 AngularJS 지시어 속성에 액세스하는 방법?
<div class="col-sm-6 col-md-4" ng-repeat="item in items">
<div auction-item-card data-auction-item="item" ></div>
</div>
items.html라는 하나 개의보기에서 다음 HTML 마크 업 그리고 지시가있을 때 itemDetails.html
<div class="col-sm-6 col-md-4">
<div auction-item-card data-auction-item="item"></div>
</div>
라는 단지보기에 다음 HTML 마크 업으로
angular.module('app.directives.auctionItemCard', [])
.directive('auctionItemCard', function() {
return {
restict: 'A',
scope: {
auctionItem: '=',
actionWatch:'&'
},
templateUrl: 'app/auctionTangoApp/template/itemTemplate.html',
link:function(scope, element,attrs) {
console.log(scope.auctionItem);
},
controller: function ($scope) {
console.log($scope.auctionItem);
}
};
});
ng-repeat 내부에서는 완벽하게 작동합니다. 그러나 지시문이 바깥 쪽이고보기의 제어기가 지시문 안에 항목 값을 설정하면 $ scope.auctionItem은 항상 정의되지 않습니다.
누군가 지시기가 ng-repeater 밖에있을 때의 차이점을 밝힐 수 있습니까? item
가 정의되지 않은, 두 번째 예에서
var itemController = function ($scope, $routeParams,$location, $filter, $window,
$timeout, authService, productService) {
var itemId = ($routeParams.itemid) ? parseInt($routeParams.itemid) : 0;
function init() {
// $scope.item = {};
productService.getProductById(itemId).then(function(item) {
$scope.item = item;
});
};
init();
};
'item'은'ng-repeat' 내에 만 존재합니다 - 클릭 한 후에 내용을 표시하려고합니까? – Darren
대런 컨트롤러 코드를 추가했습니다 – Dwheatfall
서비스 요청에서 실제로 아이템을 다시받을 수 있는지 확인할 수 있습니까? 아마도 console.log (item) - – Darren