AngularJS中未更改$ scope

时间:2015-11-13 16:20:40

标签: javascript angularjs angularjs-directive angularjs-scope

我正在编写一个调度服务,所以每周都有很多次;当你每次点击它的Unix格式发送到模态并且用户可以预订时,现在我想通过编写以下代码将Unix时间传递给ngDialog模块。

截图

Booking Service预订服务视图

when you click on 9:00 button the modal(ngDialog) will be opened当您点击9:00按钮时,模态(ngDialog)将被打开

Unix time我想在Unix输入上面的时间。

控制器

schedule.controller('schedule', ['$scope', '$http', 'ngDialog', function($scope, $http, ngDialog) {
$http.get('/zt-api/business/admin/' + window.location.pathname.split('/')[2]).success(function(data) {
        $scope.admin_times = data;
        $scope.duration = {
            startTime: "",
            endTime: ""
        };
        $scope.clickToOpen = function(start) {
            ngDialog.openConfirm({
                template: '/static/partials/staff_admin/ngdialog/admin_block_time.html',
                scope: $scope
            }).then(function(value) {
                console.log(value);
            }, function(reject) {
                console.log(reject);
            });
            $scope.duration.startTime = start;
            console.log($scope.duration)
        };
    }
});
});
}]);

HTML

<div class="morning"  ng-hide="hideMorning" ng-repeat="(key4, array4) in array3.times | filter: {'part': 'morning'}">
    <div class="daytime" ng-click="clickToOpen(array4.unix)" id="{[{ array4.unix }]}" ng-show="array4.part=='morning'">{[{ array4.timestamp.split(" ")[1].slice(0,5) }]}</div>
</div>

**array4.unix returns Unix time.**

我想在运行clickToOpen函数时能够将$scope.duration.startTime更改为start,但是,它只会在不到一秒的时间内发生变化!我该如何修改呢?

1 个答案:

答案 0 :(得分:0)

如果你将控制器添加到ngDialog.openConfirm()并记录这样的$ scope。

ngDialog.openConfirm({
            template: 'templateId',
            controller: function($scope){
              console.log($scope);
            },
            scope: $scope
        }).then(function(value) {
            console.log(value);
        }, function(reject) {
            console.log(reject);
        });

}

您会注意到通过父控制器传入的任何值都可通过$ scopes。$ parent对象访问,如下图所示。这是一个plunk,可以将$ scope传递给ngDialog,并在ngDialog中的输入框中显示主控制器$ scope.dateTime

$scopes parent