【问题标题】:Angular expression not evaluating for text/ng-template角度表达式不评估文本/ng-template
【发布时间】:2016-08-03 10:12:39
【问题描述】:

这是示例http://codepen.io/anon/pen/ZWrNGW。

<body layout="column" ng-controller="AppCtrl">
     <script type="text/ng-template" id="save-dialog.tmpl.html">
      <md-dialog>{{message}}</md-dialog>
    </script>
    <md-button ng-click="showDialog()">
      Show Dialog</md-button>
  </body>

控制器

angular.module('playground', ['ngMaterial'])

.controller('AppCtrl', function($scope, $mdDialog) {
  $scope.showDialog = function() {
    $mdDialog.show({templateUrl: 'save-dialog.tmpl.html'})
  };
  $scope.message = 'This message should idsplay on dialog';
});

{{message}} 的 Angular 表达式不会在单击“显示对话框”按钮时评估 text/ng-template,即使它已在范围内定义。

请帮我解决这个问题

【问题讨论】:

    标签: javascript angularjs angularjs-scope


    【解决方案1】:

    您需要在对话框的开头添加范围:

    $mdDialog.show({
      templateUrl: 'save-dialog.tmpl.html',
      scope: $scope
    })
    

    【讨论】:

      【解决方案2】:

      确保配置要继承的范围,否则$mdDialog 服务将创建一个新的隔离范围,当然不会有message 属性。

      在你的情况下正确的代码:

      $mdDialog.show({
        templateUrl: 'save-dialog.tmpl.html',
        scope: $scope
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多