md-select md-selected-html表达式没有触发相应的方法

时间:2017-05-26 17:23:58

标签: angularjs angular-material md-select

尝试使用可在此页面上看到的md-selected-html表达式。 :

https://material.angularjs.org/latest/api/directive/mdSelect

在我能够找到的互联网上没有这种用法的例子。我已经能够在网络上找到md-selected-text表达式的示例而没有问题。下面的第一个codepen是这个工作和javascript函数触发的一个例子。

https://codepen.io/anon/pen/ONEQmE?editors=1010

<md-select ng-model="selectedItem" md-selected-text="getSelectedText()">
          <md-optgroup label="items">
            <md-option ng-value="item" ng-repeat="item in items">Item {{item}}</md-option>
          </md-optgroup>
</md-select>

以下是我的版本,其中存在md-selected-html表达式,而不是触发javascript函数。关于为什么这不起作用的任何想法?

https://codepen.io/billBlankenship/pen/bWJvvo?editors=1010

<md-select ng-model="selectedItem" md-selected-html="getSelectedText()">
          <md-optgroup label="items">
            <md-option ng-value="item" ng-repeat="item in items">Item {{item}}</md-option>
          </md-optgroup>
</md-select>

1 个答案:

答案 0 :(得分:0)

md-selected-html表达式“ 要评估的表达式,当表达式输入关闭时,该表达式将返回在选择输入框中显示为占位符的字符串。该值将被视为html。该值必须是被明确标记为trustedHtml或必须加载ngSanitize模块。

您需要传递一个将返回字符串的表达式。请记住最后一句话,即必须加载字符串(视为html)为trustAsHtml或ngSanitize模块。

我的工作示例:

<md-select md-selected-html="getSelectedHtml()" ...>

angular.module("myApp", ['ngSanitize']).controller('myController', function($scope){
   $scope.getSelectedHtml = function(){
      return "<span>Your custom html here</span>";
   }
});