我会感激任何帮助。我的问题:在我看来,我无法从$scope.info
显示价值。我没有直接访问html,所以我只能通过js更改DOM。
我创建了新元素,并使用append()
方法
$scope.info = {
clicks: 15862,
spent: '$124',
created: '04/08/2017',
author: 'John Kovalenko',
name: 'Advertise US'
};
var info = document.createElement('div');
info = angular.element(info).attr({
'ng-bind': 'info',
'class': 'statistic-info'
});
angular.element(infoContainer).append(info[0]);
我在这里创建了一个例子。 http://jsfiddle.net/ADukg/13598/
我做错了什么?谢谢
答案 0 :(得分:4)
手动注入任何使用指令
的内容时,必须使用$compile
var info = angular.element('<div>').attr({
'ng-bind': 'info.author',
'class': 'statistic-info'
});
info = $compile(info)($scope);
angular.element(infoContainer).append(info);
请务必在任何地方注入$compile
的 DEMO 强>
答案 1 :(得分:2)
最简单的答案是在附加数据之前将数据添加到HTML内容中。由于您有一个对象,我在下面的代码段中提供了其中一个属性。
正在发生的事情是您的页面加载,摘要周期已经完成。你要附加的只是纯文本,因此不进行插值。我提供的这种方法不会提供双向绑定。如果需要,您应该使用指令。
var infoTwo = '<div><p>' + $scope.info.clicks + '</p></div>';
那就是说,charlieftl有最好的答案。