Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新“选择”下拉列表时不更新ng模型_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 更新“选择”下拉列表时不更新ng模型

Javascript 更新“选择”下拉列表时不更新ng模型,javascript,html,angularjs,Javascript,Html,Angularjs,为什么当我更改header.html中的select选项时(该选项已包含在index.html中,如下所示): <div ng-include="'views/templates/header.html'"></div> main service.js vm.menNewArrivals = {}; vm.currencyTypes = MainService.getCurrencyTypes(); vm.selectedCurrency = vm.currencyT

为什么当我更改header.html中的select选项时(该选项已包含在index.html中,如下所示):

<div ng-include="'views/templates/header.html'"></div>
main service.js

vm.menNewArrivals = {};
vm.currencyTypes = MainService.getCurrencyTypes();
vm.selectedCurrency =  vm.currencyTypes[0];

MainService.getMenNewArrivals().then(function(result) {
  vm.menNewArrivals = result.data.menNewArrivals;
});
function getCurrencyTypes()
{
  var currencyTypes = ['GBP', 'USD', 'EUR'];
  return currencyTypes;
}

有两种方法可以解决这个问题

  • 您已经在使用
    ng controller=“MainController as vm”
    ,您的头html有自己的
    ng控制器
    ,它正在再次创建另一个
    MainController
    实例。这意味着头有自己的作用域,不同于
    main.html
    MainController
    控制器,所选值存储在新的控制器实例中。删除
    ng控制器
    from
    header.html
    将解决您的问题,通过删除它,header html将可以访问主html控制器范围
  • 如果以上不是原因,您可以创建一个服务,在角度应用程序的不同组件之间共享数据。在这种情况下,
    selectedCountry
    将保存在可共享数据服务中

  • 谢谢,2)中服务的代码是什么样子的?
    vm.menNewArrivals = {};
    vm.currencyTypes = MainService.getCurrencyTypes();
    vm.selectedCurrency =  vm.currencyTypes[0];
    
    MainService.getMenNewArrivals().then(function(result) {
      vm.menNewArrivals = result.data.menNewArrivals;
    });
    
    function getCurrencyTypes()
    {
      var currencyTypes = ['GBP', 'USD', 'EUR'];
      return currencyTypes;
    }