Angular指令templateUrl不起作用

时间:2016-05-04 19:07:45

标签: angularjs directive

到目前为止,这是我的代码,使用@html.partialview

通过Angular自定义指令在浏览器中返回视图
var newOne = function () {
    return {
        restrict: "A",
        templateUrl: "newone.html",
        replace: true,
        scope: {},
        controller: ['$scope', function ($scope) {
            }]
    }
}

我声明了id" newone.html"这里:

<script type="text/ng-template" id="newone.html">
            @Html.Partial("~/Views/AngularTemplates/Newone.cshtml")
        </script>

当然我从html调用指令:

<div data-new-one></div>

不幸的是我没有得到适当的回应。 我得到的只是一条错误消息(控制台检查员): [$ compile:tpload]无法加载模板:newone.html

我试图将.cshtml存储在多个文件夹中,甚至从bundleconfig加载它......但没有! 有任何想法吗? 谢谢!

4 个答案:

答案 0 :(得分:1)

您不需要使用@ Html.Partial。

尝试将指令代码更改为:

var newOne = function () {
    return {
        restrict: "A",
        templateUrl: "~/Views/AngularTemplates/Newone.cshtml",
        replace: true,
        scope: {},
        controller: ['$scope', function ($scope) {
            }]
    }
}

答案 1 :(得分:0)

在Angular文档中找到解决方案:
https://docs.angularjs.org/error/$compile/tplrt 其中说:

  

模板必须只有一个根元素

似乎多个<div>代码甚至评论都收到错误。

答案 2 :(得分:0)

创建一个名为:

的新文件名
instance_ids = []
for reservations in response['Reservations']:
    for instance in reservations['Instances']:
        instance_ids.append(instance['InstanceId'])

只需将旧文件的内容复制并过去到新的~/Views/AngularTemplates/Newone.**tpl**.cshtml 文件中即可 在tpl.htmltpl

之前添加cshtml(模板)

示例:

html

答案 3 :(得分:0)

您可以在脚本中导入模板,并将其用作“模板”,而不是“ templateUrl”:

import newone from 'newone.html';
var newOne = function () {
return {
    restrict: "A",
    template: newone,
    replace: true,
    scope: {},
    controller: ['$scope', function ($scope) {
        }]
      }
    }