2017-03-09 51 views
0

如何在指令中加載ActionResult? 我是新的角度和得到這個不好的挑戰,我不知道如何shuld我這樣做。 有沒有簡單的方法來使用角度模式和加載MVC動作?!如何在角度指令中加載作爲模態的動作

<modal title="Modal" visible="showModal"> 
    <form role="form"> 
     <div class="form-group"> 
      <label for="email">email</label> 
      <input type="email" class="form-control" id="email" placeholder="Enter email" /> 
     </div> 
     <div class="form-group"> 
      <label for="password">password</label> 
      <input type="password" class="form-control" id="password" placeholder="Password" /> 
     </div> 
     <button type="submit" class="btn btn-default">submit</button> 
    </form> 
</modal> 


ngApp.directive('modal', function() { 
debugger; 
return { 
    template: '<div class="modal fade">' + 
     '<div class="modal-dialog">' + 
      '<div class="modal-content">' + 
      '<div class="modal-header">' + 
       '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>' + 
      '<h4 class="modal-title">{{ title }}</h4>' + 
      '</div>' + 
      '<div class="modal-body" ng-transclude></div>' + 
     '</div>' + 
     '</div>' + 
    '</div>', 
    restrict: 'E', 
    transclude: true, 
    replace: true, 
    scope: true, 
    link: function postLink(scope, element, attrs) { 
     scope.title = attrs.title; 

     scope.$watch(attrs.visible, function (value) { 
      if (value == true) 
       $(element).modal('show'); 
      else 
       $(element).modal('hide'); 
     }); 

     $(element).on('shown.bs.modal', function() { 
      scope.$apply(function() { 
       scope.$parent[attrs.visible] = true; 
      }); 
     }); 
     $(element).on('hidden.bs.modal', function() { 
      scope.$apply(function() { 
       scope.$parent[attrs.visible] = false; 
      }); 
     }); 
    } 
}; 

});

+0

在ActionResult中收到的HTML內容放入指令中您正在談論的是什麼「ActionResult」?你不會在代碼中的任何地方提及它。 – Fissio

回答

0

在您的指令的鏈接函數中,對獲取ActionResult進行HTTP調用。然後將使用element.html(HTML content)

+0

感謝您的回答,但我怎麼能得到使用HTTP的ActionResult Html!? – Mehdi

+0

只需要對該特定操作方法進行Ajax調用即可。當您從action方法返回View()時,它實際上會返回HTML。因此,請進行Ajax調用,接收HTML並將其放入元素中。 – Shahzad

+0

如果有可能請告訴我代碼? – Mehdi