使用<select> <option>的AngularJs更新函数不起作用

时间:2016-10-03 14:31:35

标签: javascript html angularjs d3.js

我在使用AngularJS时非常困难。我试图用纯HTML将我的一些工作转换为angularjs。我的更新功能不适用于AngularjS 这个带有纯HTML的工作代码:每当我从下拉列表中进行选择时,它都会更新。  &lt; div id =“year”class =“btn-group”&gt;   &lt; button type =“button”class =“btn btn-default dropdown-toggle”data-toggle =“dropdown”&gt;     &lt; span class =“selection”data-selection =“Year”&gt;选择年份&lt; / span&gt;&lt; span class =“caret”&gt;&lt; / span&gt;   &LT; /按钮&GT;         &lt; ul class =“dropdown-menu multi-level”role =“menu”aria-labelledby =“dropdownMenu”&gt;         &lt; li class =“dropdown-submenu year”&gt;           &lt; a tabindex =“ - 1”href =“#”&gt; 2011&lt; / a&gt;         &LT; /锂&GT;         &lt; li class =“dropdown-submenu year”&gt;           &lt; a tabindex =“ - 1”href =“#”&gt; 2012&lt; / a&gt;         &LT; /锂&GT; d3.selectAll('。dropdown-submenu.year&gt; a')。on(“click”,function(d){ year = this.text; chartsUpdate(); }); 在这里尝试使用AngularJS实现相同的功能:     年: &lt; select class =“YearSelector”&gt;     &lt; option ng-repeat =“year_ chart_data | unique:'FiscalYear'| orderBy:'FiscalYear'”&gt;         {{year.FiscalYear}}&lt; / option&gt; &LT; /选择&GT; d3.selectAll('。YearSelectors')。on(“click”,function(d){         FiscalYear = this.text;         chartsUpdate();     }); 更新,这里是我的chartUpdate()函数: function chartsUpdate(){         myChart.data = getData(data,FiscalYear,Quarter);         myChart.draw(500);     } 我已经尝试了多种方法但没有工作,我觉得我正在做一些非常基本的错误。我仍然是html和angularjs的新手。 在此先感谢您的任何帮助或建议

2 个答案:

答案 0 :(得分:3)

我需要看看你的控制器,但理论上我会建议。

<select  class="YearSelector" ng-change="chartsUpdate()">
    <option  ng-repeat="year in chart_data |  unique: 'FiscalYear' | orderBy:'FiscalYear'" >
        {{ year.FiscalYear }}</option>
</select>

但是当你学习角度时,你应该在你的选择中使用ng-options。

答案 1 :(得分:2)

使用 ng-change ng-options

<select class="YearSelector"
        ng-change="chartsUpdate()"
        ng-options="year.FiscalYear for year in chart_data |  unique: 'FiscalYear' | orderBy:'FiscalYear'">
</select>