角度表达式不评估text / ng-template

时间:2016-04-12 16:45:08

标签: javascript angularjs angularjs-scope

以下是示例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}}的角度表达式在单击“显示对话框”按钮时不评估text / ng-template,即使它在范围内定义。

请帮我解决这个问题

2 个答案:

答案 0 :(得分:0)

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

在您的案例中更正代码:

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

答案 1 :(得分:0)

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

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