大家好,我是AngularJS的新手,我正在学习制作指令。
这是我在指令中的控制器功能:
controller: function ($scope,$attrs) {
Live($attrs.building, $attrs.sensor).success(function (response) {
$scope.value = response;
console.log($scope.value); //first console log
});
console.log($scope.value); //second console log
}
我有两个问题
第一个是为什么第二个控制台日志出现在第一个控制台日志的第一个?(请注意,Live是我提供的服务,它正在运行。)。我的第二个问题是为什么第一个控制台日志返回一个值而第二个控制台日志返回未定义?。
我的猜测是指令代码首先编译而不是服务代码我是对的吗?
Directive.js
angular.module('app.directives.chart', []).directive('chartlive', function ($http, Live) {
return {
restrict: 'E',
scope: {
building: '@',
sensor : '@'
},
controller: function ($scope,$attrs) {
Live($attrs.building, $attrs.sensor).success(function (response) {
$scope.value = response;
console.log($scope.value);
});
console.log($scope.value);
}
}
});
Service.js
app.factory('Live', function ($http) {
return function(ip,name){
return $http({
method: 'GET',
url: 'http://193.136.40.6/Rest/RestService.svc/Rest/Live/' + ip + '/' + name,
params: { ip:ip,name:name }
});
}
});