0
Bir yönerge kullanarak veri alıyorum ve bir kapsam değişkeni 'hizmetler' oluşturuyorum, ancak görünümde görünmüyor ve denetleyicide 'tanımsız'. Verilerin gösterilmesinin en iyi yolu nedir?Kapsam değişkeni neden görünümde veya denetleyicide gösterilen yönerge kapsamında tanımlanmıyor?
var app = angular.module('myApp', []);
app.directive('myTag', ['$http', function($http, $scope) {
//http://apidocs.bookingbug.com/public.html#!/company/get_company_company_id
return {
restrict: 'E',
transclude: true,
replace: true,
scope:{
src:"="
},
controller:function($scope, $attrs){
console.info("enter directive controller");
$http({
method: 'GET',
url:$scope.src,
headers: {
'App-Id': '5a3d8b8d',
'App-Key': '738e9aca62e7465446b7be8fe4219ffa'
}
}).then(function (result) {
console.log(result);
console.log(result.data._embedded.services);
var states = result.data._embedded.services;
var services = [];
angular.forEach(states, function (state) {
var service = {
'description':state.description,
'name':state.name,
'prices':state.prices[0]
}
services.push(service)
});
$scope.services = services;
console.log($scope);
console.log($scope.services); //This shows correctly - array of objects.
}, function (result) {
alert("Error: No data returned");
});
}
}
}]).controller('MainController', function ($scope) {
console.log($scope.services); //This shows undefined
});
html:
<ul class="the-results">
<li ng-repeat="service in services">
<a href="#" id="{{ $index + 1 }}">{{ service.name }}</a>, {{ service.description }}
</li>
</ul>
<my-tag src="'https://uk.bookingbug.com/api/v1/41285/services'"></my-tag>
Harikasınız. Üzgünüm, açısal olarak yeniyim. Yani bir direktif bir kontrolörün çocuğu mu? Yeşil işareti için biraz açıklayabilir misin? – Squirrl
Evet, bir yönerge tam olarak bir denetleyicinin çocuğu. Böylece her $ scope.controllerVars'a $ kapsamına erişebilirsiniz. $ Parent.controllerVars yönergelerinizde – Sparw
Sadece kayıt için 'console.log ($ scope.services);' görünüm hala olsa ilk ve tanımsız gösterir doldurulur. Denetleyicide bazı işlevler çalıştırmak istediğimde, örneğin $ scope.services.description = $ scope.services.description.toUpperCase() 'Hala bir hatayla karşılaşıyorum. – Squirrl