我想创建一个控制器,从db获取数据并赋予指令。因此,当用户单击例如“新闻稿”文本时,异步数据将出现在另一个指令模板中。 如何从控制器向指令提供异步数据? 我通过php文件从数据库中获取数据。 这是代码:
function newsletterController($scope, $http, loadFactory, newsletterFactory, $location) {
$scope.id;
$scope.title;
$scope.getNews = function () {
loadFactory.loadText();
$location.path('/newsletter');
$http.get('server/newsletter_title.php')
.success(function (response, status) {
loadFactory.removeText();
for (var i in response.title) {
$scope.id = response.id[i];
$scope.title = response.title[i];
console.log('got it!!');
};
});
};
}
然后我想将这个异步数据添加到指令中。 这个指令是这样的:
angular.module('app')
.controller('newsletterController', newsletterController)
.directive('newsItem', function () {
return{
restrict: 'EA',
link: function (scope, element, attr) {
element.on('click', function () {
scope.getNews();
scope.$watch("id", function (newVal, oldVal) {
element.html(scope.id);
console.log("newsitem");
});
});
},
template: "Newsletter"
};
})
然后添加另一个指令模板。 (也许我错了,可能是不必要的一步)
.directive('dynamic', function () {
return{
restrict: 'EA',
replace: true,
link: function postLink(scope, element, attrs) {
scope.$watch("id", function (newVal, oldVal) {
element.html(scope.id);
console.log("dynamic2");
});
},
template: '<a class="btn btn-default btn-block" ng-repeat="Here is the id" >Here is the title</a>'
};
});
然而什么也没发生。