AngularJS:链接的问题,如何使用标记
AngularJS: issues with link, how do I use markups?
我遇到了一个类似的问题传递变量到指令模板没有创建新的范围,这似乎没有帮助我。代码看起来像;
.directive('billDir', function () {
return {
template: '<div><div draggable>hello {{msg}}</div></div>',
link: function (scope, elem, attrs) {
// scope.status = attrs.bill.getStatus();
scope.msg = "world!";
}
}
})
.directive('draggable', function ($document) {
return {
scope: {
bill: '='
},
replace: true,
restrict: 'A',
link: function (scope, element, attr) {
// do something here
var startX = 0,
startY = 0,
x = 0,
y = 0,
sourceX = 0,
sourceY = 0,
windowWidth = 0;
element.on('mousedown', function (event) {
event.preventDefault();
startX = event.pageX - x;
startY = event.pageY - y;
$document.on('mousemove', mousemove);
$document.on('mouseup', mouseup);
windowWidth = $(window).width();
sourceY = event.pageY;
sourceX = event.pageX;
}); // some more stuff, to the end of the directive
billDir没有像预期的那样工作,我没有得到{{msg}}的位置
我在这里做错了什么?
小提琴
深入查看您的代码,我发现您的指令标记存在一个可以理解的错误。当通过指令创建HTML元素时,必须添加restrict: 'E'。
app.directive("billInfo", function() {
return {
restrict: 'E',
replace: true,
template: '<div><div draggable>hello {{msg}}</div></div>',
link: function (scope, element, attrs) {
scope.msg = "world! It Works!";
}
}
});
如果你没有声明一个restrict:,那么angular会假设你想让这个指令像一个div的属性一样运行,比如<div bill-info></div>
下面是小提琴的例子:http://jsfiddle.net/bebold/4b3NL/9/
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 灯光问题(使用三个.js)
- 使用angular.js问题的JavaSpringREST服务
- 使用导航属性创建Kendo UI网格模型的问题
- 修复了使用Jquery的列(表头问题)
- 使用createContainer将Meteor数据获取到React Native中时出现问题
- 在FF和IE中使用vimeo播放器的问题-加载flash播放器而不是使用HTML5播放器
- 使用Ajax的问题's发送多个值的Post方法
- HTMLAjaxCommandButton 的使用问题
- Jquery 文本交换 - 多次使用问题
- HTML 警报使用问题
- 延迟对象使用问题jQuery
- zXml使用问题
- ReactJS-编译.jsx的Babel使用问题
- 将.attr()与.get()一起使用问题
- 效果渐变输出的使用问题
- Javascript对象名称使用问题.我认为
- async的变量使用问题
- 在数组中使用问题