如何将数据传递到角度基础模态$scope



我使用的是角度基础,特别是模态http://madmimi.github.io/angular-foundation/#/modal,在使用一个控制器时,我对如何将数据传递给模态感到困惑,我想获取一个数组值并更新模态以显示特定的用户信息,例如:$scope.updateUserInfo=$scope.user[index],唯一的问题是如何将数据传给模态。

myApp.controller('users',function ($scope,$location,$http,$modal,msg) {
$http.get('api/v1/users')
.success(function (data,status) {
    $scope.user = data;
})
.error(function (data,status) {
    $location.path('/login');
});
$scope.showWrite = function () {
    $scope.write = true;
}
$scope.closeWrite = function () {
    $scope.write = false;
    $scope.newUser = '';
}
$scope.save = function () {
    $http.post('api/v1/users/store',$scope.newUser)
    .success(function (data,status) {
        $scope.user.unshift({
            id: data,
            first_name: $scope.newUser.first_name,
            last_name: $scope.newUser.last_name,
            email: $scope.newUser.email,
            role: $scope.newUser.role
        });
        $scope.write = false;
        $scope.newUser = '';
    })
    .error(function (data,status) {
        alert('failed');
    });
}
$scope.confirmDelete = function (index,id) {
    msg.confirmDelete().then(function(value) {
        $scope.text = msg.getText();
        $http.get('api/v1/users/destroy/'+id)
        .success(function  (data,status) {
            $scope.user.splice(index,1);
        })
        .error(function (data,status) {
            alert('Error : Operation failed');
        });
    });
}
$scope.showUserInfo = function () {
}
$scope.userUpdate = function () {
}

$scope.showUserUpdate = function (index) {
    $modal.open({
        templateUrl: 'partials/message/update.html',
        controller: 'users'
    });
}

});

要将数据传递给$modal,您需要更新$modal函数,如下所示:

$scope.showUserUpdate = function (popUpData) {
    var modalInstance = $modal.open({
        templateUrl: 'partials/message/update.html',
        controller: ['$scope', '$rootScope', '$modalInstance', 
        function($scope, $rootScope, $modalInstance) {
            $scope = angular.extend($scope, popUpData);
        }],
        resolve: {}
    });
    return modalInstance;
};

因此popupData是您想要传递给模态的数据。popupdata然后将和该控制器的现有作用域合并。现在,您可以访问HTML中的popupData键。请记住,我们在这个函数中返回模态实例,这样您就可以使用这个intance手动关闭弹出窗口

其他方法是使用resolve属性并将其注入控制器:

$scope.showUserUpdate = function (popUpData) {
    var modalInstance = $modal.open({
        templateUrl: 'partials/message/update.html',
        controller: ['$modalInstance', 'data', function($modalInstance, data) {
            data.popUpData = ...
        }],
        resolve: {
            data: popUpData
        }
    });
    return modalInstance;
};

最新更新