Angularjs ui bootstrap 模态共享信息到同一个控制器

Angularjs ui bootstrap modal sharing information to same controller

我在我的 cloud 控制器中设置了以下模式。我没有给这个模式一个特定的控制器来工作,因为我的目标是与我的云控制器共享它。

我没有告诉模态它应该使用云控制器,因为那样控制器将获得 运行 两次,我不希望这种情况发生。

.config(function($stateProvider, $urlRouterProvider, $locationProvider) {

    $stateProvider
        .state('cloud', {
            url: '/cloud',
            controller: 'cloud',
            templateUrl: 'pages/templates/cloud.html'
        })
})

.controller('cloud', function($scope, $rootScope, $http, $state, $stateParams, $modal) {

    $scope.toggleModal = function () {
        $scope.renameModal = $modal.open({
            animation: true,
            templateUrl: 'pages/templates/modal.html',
            size: "md",
            scope: $scope
        });
    }

    $scope.submit = function(data) {
        console.log($scope.inputData, data);
    }

})

我要解决的问题是模态模板中的输入框。我正在尝试提交文本,让其共享,并希望更新为我在云控制器中的 $scope 变量之一。

您可以在下面看到我的 modal.html 提交时,它 运行 是我的云控制器中的 submit() 函数。它 运行 成功了,但是 $scope.inputDatadata.

的控制台日志 returns undefined
<div class="modal-header">
    <h3 class="modal-title">title</h3>
</div>
<div class="modal-body">
    <input type="text" id="rename_item" ng-modal="inputData" value="" />     
</div>
<div class="modal-footer">
    <button class="btn_submit fade" ng-click="submit(inputData)">Rename</button>
</div>

谁能帮我弄清楚我做错了什么或者我如何才能将这些数据传输到我当前的云控制器?

A BIG 大声喊叫 camden_kid 发现了我拼写错误 ng-model 的错误。我不小心做了 ng-modal.

只是更正拼写并不能解决问题。

我不知道为什么(也许有人可以帮助解释),但我不得不使用一个已经创建的对象来让它工作。仅使用预定义的变量是行不通的。

这是我对云控制器的更改:

.controller('cloud', function($scope, $rootScope, $http, $state, $stateParams, $modal) {

    $scope.toggleModal = function () {
        $scope.renameModal = $modal.open({
            animation: true,
            templateUrl: 'pages/templates/modal.html',
            size: "md",
            scope: $scope
        });
    }

    $scope.inputText = {data: ""};
    $scope.submit = function(data) {
        console.log($scope.inputText.data);
    }

})

然后我对 html 做了以下操作:

<input type="text" ng-modal="inputText.data" />