Angularjs 无法使angular formly在angular ui引导模式的ng模板中工作

Angularjs 无法使angular formly在angular ui引导模式的ng模板中工作,angularjs,angular-ui-bootstrap,angular-formly,angular-template,Angularjs,Angular Ui Bootstrap,Angular Formly,Angular Template,我使用angular formly在angular ui引导模式内构建表单,当表单放置在模式模板外时,以下代码可以工作,但当表单放置在ng模板内时,它不能工作,它根本不打印字段 我相信这应该是可行的,但我不知道angular formly的生命周期是如何运行的,所以我无法确定如何使字段显示在我的引导模式模板中 这个问题显然与ng模板有关,即使正确传递了fields数组,它似乎也不会呈现表单 var app = angular.module("demo", ['dndLists', 'ui.boo

我使用angular formly在angular ui引导模式内构建表单,当表单放置在模式模板外时,以下代码可以工作,但当表单放置在ng模板内时,它不能工作,它根本不打印字段

我相信这应该是可行的,但我不知道angular formly的生命周期是如何运行的,所以我无法确定如何使字段显示在我的引导模式模板中

这个问题显然与ng模板有关,即使正确传递了fields数组,它似乎也不会呈现表单

var app = angular.module("demo", ['dndLists', 'ui.bootstrap', 'formly', 'formlyBootstrap']);

app.controller('ModalInstanceCtrl', function ($scope, $uibModalInstance, items, User) {

    var vm = this;

    vm.loadingData = User.getUserData().then(function(result) {
      vm.model = result[0];
      vm.fields = result[1];
      vm.originalFields = angular.copy(vm.fields);
      console.log(vm);
    });

});

app.controller("AdvancedDemoController", function($scope, $uibModal){

    $scope.modalOpen = function(event, index, item){
        var modalInstance = $uibModal.open({
          animation: true,
          templateUrl: 'myModalContent.html',
          controller: 'ModalInstanceCtrl',
          size: 'md',
          resolve: {
            items: function () {
              return $scope.items;
            }
          }
        });

        modalInstance.result.then(function (selectedItem) {
            $scope.selected = selectedItem;
        }, function () {
            $log.info('Modal dismissed at: ' + new Date());
        });
    };
});
我认为:

<!-- Template for a modal -->
<script type="text/ng-template" id="myModalContent.html">
    <div class="modal-header">
        <h3 class="modal-title">I'm a modal!</h3>
    </div>
    <div class="modal-body">
        <div ng-if="vm.loadingData.$$state.status === 0" style="margin:20px 0;font-size:2em">
            <strong>Loading...</strong>
        </div>
        <div ng-if="vm.loadingData.$$status.state !== 0">
            <form ng-submit="vm.onSubmit()" novalidate>
                <formly-form model="vm.model" fields="vm.fields" form="vm.form">
                    <button type="submit" class="btn btn-primary submit-button">Submit</button>
                </formly-form>
            </form>
        </div>
        <ul>
            <li ng-repeat="item in items">
                <a href="#" ng-click="$event.preventDefault(); selected.item = item">{{ item }}</a>
            </li>
        </ul>
        Selected: <b>{{ selected.item }}</b>
    </div>
</script>

我是模态的!
加载…
提交
选定:{{Selected.item}

有什么想法吗?

当调用
$uibModal.open
时,您需要指定
controllerAs:'vm'
(这就是您的模板假设控制器的定义)。

您将
ModalInstanceCtrl
视为使用
controllerAs
(因为你在模板中使用了
vm
,但它不是。确保你使用的是
controllerAs
,我实际上使用的是
,这不是取代了
controllerAs
?好的,解决了!你完全正确,我添加了
controllerAs
,它成功了!请回答问题,我将它标记为th。)e解决方案。非常感谢。