没有显示Angularjs指令

Angularjs directive not showing

本文关键字:指令 Angularjs 显示      更新时间:2023-09-26

我刚开始使用Angularjs,我正试图构建一个指令。
我的js文件

 var app = angular.module('myCars',['ngResource']);
 app.controller('CarController', function (Post) {
        var b = Post.query(function () {
            console.log(all);
        });
        this.cars = b;
});
        app.directive("carCritics", function () {
                return {
                    restrict: 'E',
                    templateUrl: '~/Views/Home/car-critics.cshtml'
                };
            });

在我的CSHTML文件中看起来像这样:

<car-critics></car-critics>

我在网上读了很多关于指令的文件,我看不出我做错了什么。每当我启动应用程序时,指令中的部分都不会显示。我将非常感谢任何形式的帮助。

templateUrl

~是服务器知道的东西(例如使用Server.MapPath),但客户端不知道(客户端如何知道服务器的根目录?)。

您需要放置不包含~的完整路径

您不能直接从Views文件夹中获取.cshtml。您必须创建一个ActionResult,然后返回"car-critics"。

public class HomeController
    {
        public ActionResult CarCritics() {
            return View("car-critics");
        }
}

和指令应该是:

app.directive("carCritics", function () {
        return {
            restrict: 'E',
            templateUrl: '/Home/CarCritics'
        };
    });