使用 Jade 和 CoffeeScript 将变量传递给 Angular 中的模态 window

Passing variable to Modal window in Angular with Jade and CoffeeScript

我试图将一个值从页面传递到弹出模式 window 但浏览器给了我一个未定义的值。以下是模态 window

的页面控制器函数
$scope.showUserDetails =  (user) ->
modalInstance = $modal.open
  templateUrl: "/partials/user_details.html"
  controller: "UserDetailCtrl"
  keyboard: true
  resolve:
      selectedUser: ->
        user

modalInstance.result.then (args) ->
    updateFilter()

下面是我的模态 window 控制器

.controller('UserDetailCtrl', [
'$scope'
'$modalInstance'
'selectedUser'
($scope,$location,$http,$modalInstance,selectedUser) ->
    console.log(selectedUser);
    $scope.user = selectedUser;
])

但变量 selectedUser 始终未定义。我什至尝试在主控制器中传递一个字符串而不是变量 'user' 但我仍然得到一个未定义的值。

根据您的评论,问题出在您列出的依赖项上。在您的控制器函数中,您引用了 $location$http 但您没有将它们列在字符串名称数组中。要修复你需要从你的控制器中删除它们(如果你没有使用它们),或者在字符串列表中正确指定它们。

从控制器中删除

.controller('UserDetailCtrl', [
  '$scope'
  '$modalInstance'
  'selectedUser'
  ($scope,$modalInstance,selectedUser) ->
    console.log(selectedUser);
    $scope.user = selectedUser;
])

或添加到字符串列表

.controller('UserDetailCtrl', [
  '$scope'
  '$location',
  '$http',
  '$modalInstance'
  'selectedUser'
  ($scope,$location,$http,$modalInstance,selectedUser) ->
    console.log(selectedUser);
    $scope.user = selectedUser;
])