Javascript AngularJS异步隔离指令不工作
我想发送一个从DB返回的对象到一个child指令。当我以同步模式发送任何类型的数据时,它都会工作。然而,当我做同样的事情,但从远程服务器获取数据时-异步方法,指令在结果出来之前被触发 这是从服务器获取数据的控制器:Javascript AngularJS异步隔离指令不工作,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我想发送一个从DB返回的对象到一个child指令。当我以同步模式发送任何类型的数据时,它都会工作。然而,当我做同样的事情,但从远程服务器获取数据时-异步方法,指令在结果出来之前被触发 这是从服务器获取数据的控制器: app.config(function($routeProvider, $locationProvider) { $routeProvider.when("/root/cardboards/employees/:_employee", { templateUr
app.config(function($routeProvider, $locationProvider) {
$routeProvider.when("/root/cardboards/employees/:_employee", {
templateUrl: "screens/root/cardboards/employees-detail/employees-detail.html"
});
// $locationProvider.html5Mode(true);
});
app.controller("employees-detail", ($rootScope, $scope, $location, $routeParams, Http, Cast) => {
Http.GET({
resource: `employees/${$scope._employee}`
}, (err, response) => {
if (err) return Cast.error(err);
$scope.employee = response.data; // employee's object
$scope.$apply();
});
});
这是HTML中的指令元素:
<edit-employee employee="employee"></edit-employee>
我认为,当我使用=
操作符时,这意味着它现在是双向绑定,指令将监视更改,然后根据向服务器发出请求后的数据拥有功能
然而,它不是那样工作的
它应该如何工作,我应该怎么做,标准的方法,使它工作?当
希望这将帮助您并作为参考…第三种方法是使用解析部分$routeProvider.When()
来声明在导航到给定模板之前需要加载的数据
app.directive("editEmployee", ($rootScope, Http, Cast) => {
return {
templateUrl: "/screens/root/cardboards/employees-detail/components/edit-employee/edit-employee.html",
scope: {
employee: "="
},
link: function($scope, element, attrs) {
console.log($scope.employee); // undefined
}
}
});
link: function($scope, element, attrs) {
console.log($scope.employee); // undefined
}