小编Jac*_*erd的帖子

Highcharts-ng指令(Angular)不更新

我正在使用highcharts-ng Angular-JS指令在我的页面上绘制图表.

我希望能够更新控制器中的数据,并将这些值反映在图表中.但是,当我使用赋值更新$ scope变量时,例如:

$scope.chartData = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)

...然后图表不会更新.我可以更新图表的唯一方法是将值推送到数据中,例如:

$scope.chartData.push(4);
Run Code Online (Sandbox Code Playgroud)

...但是这仅在第一次执行时起作用.这是一个JS小提琴,显示我的意思:http://jsfiddle.net/K6hL8/

我是Angular的新手所以我想在我开始指责第三方指令之前检查我的Angular代码是否存在明显的问题(也许我误解了$ scope和双向绑定?).

提前致谢!

编辑:

所以看来(在这个小提琴中:http://jsfiddle.net/K6hL8/),Angular 确实看到了chartData中的变化(我已经把一个带有警报的手表放在上面),但只有在使用"true"调用watch时"为了平等.指令中的所有手表都使用'true',所以我很难过......

javascript highcharts angularjs angularjs-scope highcharts-ng

4
推荐指数
1
解决办法
5545
查看次数

不一致的Javascript行为(IF语句嵌套在while循环中)

我正在尝试编写一个简单的Javascript(jQuery)函数,该函数随机显示6个Div.可能的11个.代码排序,它会随机显示大约一半的Div,但它在4到8之间变化.

谁能告诉我哪里出错了?它似乎应该如此简单但我完全迷失了!

我的代码:

<div class="offer">Offer 1</div>
<div class="offer">Offer 2</div>
... snip
<div class="offer">Offer 11</div>

<script src="query.min.js" type="text/javascript"></script>


 <script>
            var changed = 0;

            while (changed < 6) {


                $('.offer').each(function(index) {

                    if (changed < 6) {

                        var showOrNot = Math.floor(Math.random() * 2);

                        if (showOrNot == 1) {

                            $(this).addClass('offershow');
                            changed += 1;
                            $(this).text(changed); //debugging looking for the current value of changed 
                        }


                    }


                })


            }

        </script>
Run Code Online (Sandbox Code Playgroud)

javascript random jquery while-loop

1
推荐指数
1
解决办法
301
查看次数

jQueryUI datepicker - 当调用show()时,第二个实例闪烁然后消失

我的页面上有两个jQueryUI日期选择器.

它们的初始化如下:

jQuery("#departureDate").datepicker({
    beforeShow: function() {
        getDatesForCalendar("outbound");
    },
    numberOfMonths: 3,
    constrainInput: true,
    dateFormat: 'dd/mm/yy',
    showButtonPanel: false,
    hideIfNoPrevNext: true,
    onSelect: function(dateText, inst) { jQuery('#returnDate').datepicker("show");  } 
});


jQuery("#returnDate").datepicker({
    beforeShow: function() {
        getDatesForCalendar("return");
    },
    numberOfMonths: 3,
    constrainInput: true,
    dateFormat: 'dd/mm/yy',
    showButtonPanel: false,
    showOn: "focus",
    hideIfNoPrevNext: true,
    defaultDate: +1
});
Run Code Online (Sandbox Code Playgroud)

在弹出之前,他们使用getDatesForCalendar()检查哪些日期可用,它们不包含应隐藏或显示日历的代码.

我的问题是,当第一个日历调用第二个日历时(这是onSelect),第二个日历闪烁一秒钟然后消失.这是一个仅限FF/Chrome的问题,它似乎不会影响IE8.

我已经尝试了很多解决方案,包括更改tabindex(现在根本没有),禁用焦点功能上的节目,最后不是手动调用datepicker("show")我尝试调用focus()它与之相关.什么都没有奏效!

任何意见将大大赞赏.

非常感谢,

插口

javascript jquery jquery-ui jquery-ui-datepicker

1
推荐指数
1
解决办法
3164
查看次数