지시문 템플릿을 사용하여 목록을 업데이트하려고합니다. 하지만 http 요청 후 데이터를 업데이트하지 않습니다.Angularjs + directive 양방향 데이터 바인딩이 작동하지 않음
인 test.html :
<div ng-repeat=" comment in [{name:"A"},{name:"B"},{name:"C"}]">
<div lookup-product-icon lookup="lookupProduct(comment)" products="products"></div>
</div>
<div lookup-products></div>
....
지침 :
var app = angular.module('myApp');
app.directive('lookupProductIcon', function() {
return {
scope : {
lookup : "&"
},
template : '<div ng-click="lookup()">Use me!</div>',
};
});
app.directive('lookupProducts', function() {
return {
restrict : 'EA',
transclude : false,
scope : {
products : '='
},
templateUrl : 'lists.html'
};
});
컨트롤러
$scope.products = [];
$scope.lookupProduct = function(lists) {
var details = {
name : lists.name,
host : $scope.host_name
};
productService.lookupProduct(details).then(function(data) {
$scope.products = data.list;
console.log($scope.products);
//Here display the lists in developer tools.
}).catch(function(data) {
if (data.message) {
alert(data.message);
}
});
};
List.html :
<ul>
<li ng-repeat = "product in products"> {{product.name}} </li>
</ul>
"나를 사용하십시오!" 그 다음에 나는 http 요청을 보내고 list.html에있는 각각의 내용을위한 목록을 표시 할 필요가 있음을 의미한다.
lookupProduct 기능은 작동하지만 문제는 업데이트되지 않는 제품입니다.
세부 사항 :
두 개의 지시문을 추가했습니다. 1. lookupProductIcon - 텍스트를 표시합니다. 이 텍스트를 클릭하면 http get 요청이 필요하고 응답은 list.html (lookupProducts 지시문)에서 업데이트해야합니다. 2. lookupProducts - 데이터가 업데이트되지 않습니다.
당신은 조회 - 제품 지시어 안에 제품을 정의하지만 조회 - 제품 아이콘 조회에 사용. 왜? – vaqifrv
이 모듈을 여러 페이지 사용하고 있습니다. 그래서 lookup-product-icon을 만들었습니다. – RSKMR
shure'lookup()'이 시작 되었습니까? 'ng-click'에 대한 것. 어떤 경우에는 나는 dinamic 지시어를 추가 할 때'$ scope.apply()'를 호출해야했기 때문에 그렇게 말합니다. – r3npi2