0

我是一名新手程序员,试图将一个具有角度和节点的 Web 应用程序放在一起。我正在尝试合并角度 ui 模态但有问题。加载时,模态窗口似乎正在呈现来自主页的 html,而不是来自模板的 html。但是,如下所示,模板正在加载到页面中。

我正在寻找的不一定是这里出了什么问题的答案(尽管那会很棒),而是关于故障排除技术的建议,以便在将来不求助于 stackoverflow 的情况下尝试确定问题。

问题截图: 截屏

节点控制台:

节点控制台

以下是我当前的代码:

父子控制器(分别为 addContent 和 newTerms):

angular.module('myApp.controllers', []).
controller('addContent', function ($scope, $http, $modal, $log){


$scope.items = ['item1', 'item2', 'item3'];

$scope.addTerm = function () {  
    var newTerm = $modal.open({
        templateUrl: '../../views/partials/newTermModal.jade',
        controller: 'newTerms',
        resolve: {
            items: function () {
                return $scope.items;
            }
        }
    });

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

}).

 controller("newTerms",function($scope, $modalInstance, items){

$scope.items = items;
$scope.selected = {
    item: $scope.items[0]
};

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

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

});

我在想这可能是模板路径的问题 - 路径是否应该相对于控制器文件所在的位置?我现在就是这样。非常感谢!

4

2 回答 2

2

您的控制器代码对我来说看起来不错,我也怀疑这是模板路径的问题。

我个人没有templateUrl像您一样成功地引用模板的文件位置。我通常做的是在ng-include页面底部添加一个:

<div ng-include src="'../../views/partials/newTermModal.jade'"></div>  

我不熟悉玉,但假设你的角度模板是这样构造的:

<script type="text/ng-template" id="newTermModal.jade"> 
</script>

然后设置templateUrlid角度模板的:

templateUrl: 'newTermModal.jade'

为了排除故障,我会检查控制台并检查内容newTermModal.jade确保它是您所期望的。

于 2013-09-18T18:35:42.557 回答
0

我偶然发现了同样的问题,但原因略有不同。在我的templateurl情况下,没有设置正确的路径。这意味着,无论何时templateurl找不到或不是有效的 HTML(jade 不是有效的 HTML - 它被预处理器编译成有效的 HTML),那么 angular 只使用父 html 页面(即模态所在的页面从) 调用。

于 2016-01-24T18:09:19.090 回答