我有一个指令,它执行http请求,返回数据并更改参数的值
问题是指令控制器中返回的数据反映在HTML上但不反映在页面控制器上! 我尝试添加scope.apply(),但我已经运行了摘要周期的错误..
你能建议吗
JS
app.directive('customDirective', function() {
return {
restrict: 'E',
scope : {
pObject : "=",
url : "@"
} ,
replace : true,
controller : ['$scope','$element', '$http', function($scope, $element, $http) {
function requestData() {
urlParams = [];
urlParams['x'] = parseInt($scope.pageObj.x);
urlParams['y'] = parseInt($scope.pageObj.y);
$http.get($scope.url,{ params : urlParams})
.success(function (data) {
if ( typeof data.data !=='undefined' && data.data.length > 0) {
$scope.pObject.data = data.data;
$scope.pObject.x = data.y;
$scope.pObject.y = data.y;
}
});
}
if (typeof $scope.pObject.data !== 'undefined' && $scope.pObject.data.length==0) {
requestData();
}
}
});
答案 0 :(得分:-1)
您的指令具有pObject属性,此属性指向页面控制器范围上的属性。例如:
<custom-directive p-object="controller Property Here"></custom-directive>
请关注我如何在指令中添加pObject属性。有关我为什么这样写它的更多信息。请阅读角度文档中的规范化部分和隔离指令的范围。Creating Custom Directives