【问题标题】:controller value doesnt bind in html when use controller as syntax使用控制器作为语法时,控制器值不绑定在 html 中
【发布时间】:2016-12-01 06:05:24
【问题描述】:

我使用控制器作为语法并尝试在按钮单击时将数据加载到模式中

html:

<md-dialog ng-cloak class="promptIncludeExclude-options">
<md-toolbar class="promptIncludeExclude-header">
    <div class="md-toolbar-tools">
        <span class="title">{{vm.title}}</span>
        <span flex></span>
        <md-button class="md-icon-button" ng-click="dialogCartController.closeDialog()">
            <span class="close-dialog">&#10005;</span>
        </md-button>
    </div>
</md-toolbar>
<md-dialog-content>
    {{vm.body}}
</md-dialog-content>
<md-dialog-actions layout="row">
    <div flex="25" flex-offset="25"><md-button ng-click="dialogCartController.closeDialog()" >{{vm.button1}}</md-button></div>
    <div flex="50" flex-offset="20" ><md-button ng-click="dialogCartController.closeDialog()">{{vm.button2}}</md-button></div>
</md-dialog-actions>

Js:

(function() {
    'use strict';

    module.exports = ['$mdDialog', 'items', function($mdDialog, items) {
        debugger
        var vm = this;
        var data = [{
                "id": 1,
                "title": "Product Inclusion Notification",
                "body": "something",
                "button1": "proceed",
                "button2": "No Thanks"
            }

        ];
        angular.forEach(data, function(value, key){
            if(value.id==parseInt(items)){
                vm.title=value.title;
                vm.body=value.body;
                vm.button1=value.button1;
                vm.button2=value.button2;
            }
        });
        vm.closeDialog = function() {
            $mdDialog.hide();
        };

    }];
})();

关于按钮点击功能:

vm.handleCartOptions = function(data) {debugger

        $mdDialog.show({
            clickOutsideToClose: false,
            scope: $scope, // use parent scope in template
            preserveScope: true, // do not forget this if use parent scope
            template: require('./promptIncludeExcludeDialog/promptIncludeExclude.dialog.html'),
            controller: require('./promptIncludeExcludeDialog/promptIncludeExclude.dialog.js'),
            controllerAs: "dialogCartController",
            locals: {
                items: data// on click button value
            }
        });

    }

但标题、正文和按钮的值并没有绑定到 html

任何帮助将不胜感激

【问题讨论】:

  • 它是一个控制器,你能看到我更新的问题

标签: javascript angularjs angular-material


【解决方案1】:

您定义了controllerAs: "dialogCartController",但尝试引用vm.title

改用dialogCartController.titlecontrollerAs: "vm"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2016-11-13
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多