AngularJS/ Material : why the expression is not evaluated?

标签 angularjs angular-material

我不明白为什么在此代码中不计算表达式“{{isMultiple}}”:

HTML:

<md-input-container style="width: 30%;">
   <label>{{label}}</label>
   <md-select ng-model="choice" multiple="{{isMultiple}}">
     <md-option value="1">Option 1</md-option>
     <md-option value="2">Option 2</md-option>
     <md-option value="3">Option 3</md-option>
   </md-select>
 </md-input-container>

JS:

angular.module('app', ['ngMaterial'])
    .controller('AppCtrl', AppCtrl);

function AppCtrl($scope) {

    $scope.isMultiple = false;
    $scope.choice = "";
    $scope.label = "MyLabel";
}

Plunker 上的完整代码: https://plnkr.co/edit/a5yCLW?p=preview

在此示例中,下拉控件不应是多选的。

最佳答案

无法将表达式传递给属性multipleaccording to the documentation :

enter image description here

但是,解决此问题的一种方法是在代码中创建 md-select - CodePen

标记

<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp">
<md-input-container id="myInputContainer" style="width: 30%;">
   <label>{{label}}</label>
 </md-input-container>
</div>

JS

angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache', 'ngDialog'])

.controller('AppCtrl', function($scope, $element, $compile) {
  var myInputContainer = angular.element($element[0].querySelector('#myInputContainer')),
      mdSelect,
      mdSelectElement;

  $scope.options = [
    {value: 1, label: "Option 1"},
    {value: 2, label: "Option 2"},
    {value: 3, label: "Option 3"}
  ]
  $scope.isMultiple = false;
  $scope.choice = "";
  $scope.label = "MyLabel";

  mdSelect = "<md-select ng-model='choice' multiple='" + $scope.isMultiple + "'>" +
    "<md-option ng-repeat='option in options' value='{{option.value}}'>{{option.label}}</md-option>" +
    "</md-select>";
  mdSelectElement = angular.element(mdSelect);
  myInputContainer.append(mdSelectElement);
  $compile(myInputContainer)($scope);
});

关于AngularJS/ Material : why the expression is not evaluated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39329392/

相关文章:

angular - 如何为 Material 数据表过滤器应用突出显示

css - 调整 md-button 奇怪行为的高度

javascript - 如何将数组转换为数组中的对象 - Angular 和 Javascript

html - 在使用 angularjs 服务器端验证失败后,是否有办法恢复用户输入?

angular - 如果列表为空,如何禁用 mat-form-field 或 mat-autocomplete?

带有 Material Snackbar 的 Angular StaticInjectorError

Angular-Material2:垂直对齐文本和 md-icon 以匹配垂直样式?

javascript - 如何让我的脚本在 AngularJS 中的文本框输入更改上执行?

javascript - 没有工作功能 ng-class 和 ng-repeat

javascript - AngularJS 中的分页和过滤不稳定