在html中从控制器访问变量

时间:2014-10-24 14:35:12

标签: angularjs

我正在尝试将编辑表单弹出窗口作为显示页面,但我无法在弹出式html中获取数据。 弹出代码:

 <script type="text/ng-template" id="myModalContent.html">
  <div class="modal-header">
      <h3 class="modal-title">I am a modal!</h3>
  </div>
  <div class="modal-body">
    <h1>{{ visitor11.first_name }}</h1>       
    <div ng-app="VisitorCenter" ng-controller="visitorsController">
      <div ng-repeat="visitor22 in visitors">
        <p>{{ visitor22.first_name }} {{ visitor22.last_name }}</p>
      </div>
    </div>
  </div>

  <div class="modal-footer">
      <button class="btn btn-primary" ng-click="ok()">OK</button>
      <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
  </div>
</script>

但是这&#34; {{visitor11.first_name}}&#34;没有用。

Js文件:

$scope.open = function (index) {

visitor = $scope.visitors[index]
var modalInstance = $modal.open({
  templateUrl: 'myModalContent.html',
  controller: 'ModalInstanceCtrl',
  // size: size,
  resolve: {
    visitor11: function(){
      alert(visitor.first_name +" "+ visitor.last_name);
      return visitor;
    }
  }
});

return visitor;

};

ModalInstanceCtrl:

 visitorCenter.controller('ModalInstanceCtrl', function ($scope, $modalInstance) {

   $scope.ok = function () {
    $modalInstance.close();
   };

   $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
   };
 });

我怎样才能让这位访客&#39;我的弹出窗口中的对象。 请不要试图理解我上面的代码,因为它不会成功。我只是在做随机学习angularJs的东西。看看问题。

2 个答案:

答案 0 :(得分:1)

您应该在ModalInstanceCtrl中执行以下操作:

function ModalInstanceCtrl($scope, visitor11){
    $scope.visitor11 = visitor11;
}

要在视图中使用变量,首先它必须是$scope object

的属性

答案 1 :(得分:0)

我通过修改实例控制器来解决它。我认为“返回访问者”的决心是将此变量传递给我的html,但它将此传递给ModalInstanceCtrl控制器。 刚刚在我的html中添加了一行来使用它

visitorCenter.controller('ModalInstanceCtrl', function ($scope, $modalInstance, visitor11)        
{
    $scope.visitor11 = visitor11;
    .
    .
    .
}

现在这个变量'visitor11'已准备好在html中使用。