Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 使用angular和ng模型更改模型时,不会更新Materialize select_Javascript_Angularjs_Materialize - Fatal编程技术网

Javascript 使用angular和ng模型更改模型时,不会更新Materialize select

Javascript 使用angular和ng模型更改模型时,不会更新Materialize select,javascript,angularjs,materialize,Javascript,Angularjs,Materialize,所以我使用了物化css和角度js 当我更改模型值时,select不会更新。如果我从该示例中删除materialize,则一切正常 当我添加materialize js时,绑定似乎完全被破坏了。。也许有人已经解决了这个问题 <div class="container" ng-app="App"> <form ng-controller="Ctrl"> <div class="row"> <div class="col s12 inp

所以我使用了物化css和角度js

当我更改模型值时,select不会更新。如果我从该示例中删除materialize,则一切正常

当我添加materialize js时,绑定似乎完全被破坏了。。也许有人已经解决了这个问题

<div class="container" ng-app="App">
  <form ng-controller="Ctrl">
    <div class="row">
      <div class="col s12 input-field">
        <select name="selectInput" ng-model="object.select">
          <option value="1">Option 1</option>
          <option value="2">Option 2</option>
        </select>
       <label for="selectInput">Test select</label>
     </div>
  </div>
   <div class="row">
     <button class="btn" type="button" ng-click="click1()">
        Test 1
     </button>
    </div>
    <div class="row">
      <button class="btn" type="button" ng-click="click2()">
       Test 2
     </button>
    </div>
    <div>
      {{object.select}}
    </div>
  </form>
</div>

您应该在刷新选择值后调用M.FormSelect.init,但在setTimeout内调用它以确保​​已更新

例:


参考链接:我想我找到了解决办法。。调用$'select'.valoptionValue,然后调用$'select'.material\u select。。但无论如何,这是一个绑定不起作用的bug:
angular.module('App', [])
  .controller("Ctrl", ['$scope', function($scope) {
    $scope.object = {};
    $scope.object.select = "1";

    $scope.click1 = function() {
      $scope.object.select = "1";
    }
    $scope.click2 = function() {
      $scope.object.select = "2";
    }
    $('select').material_select();
  }]);
import * as M from 'materialize-css';

setCities(cities) {

   this.cities= cities

   setTimeout(() => { 
      M.FormSelect.init(document.querySelectorAll('#cities'), {}) 
   }, 0)

}
<select id="cities" class="validate" [disabled]="!cities" name="cities"  [(ngModel)]="client.adress.city.id">
   <option value="" disabled selected>Select a city</option>
   <option *ngFor="let city of cities" value="{{city.id}}">{{city.name}}</option>
</select>