【发布时间】:2014-01-26 21:08:38
【问题描述】:
该指令试图创建一个称为进度条的 HTML 元素,该元素在您移动页面时跟踪进度。我正在尝试开发它以用作:
<progress-bar progress='1' max='6' error="true"></progress-bar>
我只是试图将 html 中的 ^^ 元素中的信息传递给我的指令并处理信息以适当地更改进度条。
这适用于采用整数值的“progress”和“max”,但由于某种原因,注释掉的代码会处理“error”(这是一个字符串)导致问题。我是 angularJS 的新手,所以如果这听起来令人困惑或不清楚,我很抱歉......请询问我是否需要详细说明/澄清。提前致谢!
app.directive('progressBar', function(){
var compileProgressBar = function(scope, elem, attrs) {
var append = '<nav class="navbar navbar-fixed-bottom navbar-footer" role="navigation">\
<div class="container">\
<div class="row">';
var i = 1;
while (i <= parseInt(scope.max)) {
if (i <= parseInt(scope.progress)) {
//if (scope.error == "true"){
//...
//}
//else {
append += '<div class="col-xs-1"><div class="circle-filled"><center>'+i+'</center></div></div>'
//}
} else {
append += '<div class="col-xs-1"><div class="circle-hallow"><center>'+i+'</center></div></div>'
}
i++;
}
append += '</div></div></nav>'
elem.append(append);
elem.bind('click', function(){
if (scope.progress > 1) {
history.back();
scope.$apply();
}
});
}
return {
restrict: 'AE',
scope: {
max: '=max',
progress: '=progress'
//error: '=error'
},
link: compileProgressBar
}
});
【问题讨论】:
-
什么是history.back();
-
你确定错误是不是布尔值的字符串吗?
-
history.back() 将返回功能添加到进度条 - 当您单击进度条时,它的作用类似于单击浏览器上的返回按钮。这工作正常。另外,您是正确的,错误应该是布尔值。但是,我仍然不明白如何将布尔值从 html 传递到指令:/ 再次,非常感谢
-
试试这个
if (scope.error ){ -
我认为您在该语句之前缺少一个逗号
标签: javascript string angularjs angularjs-directive parameter-passing