角度代码没有看到控制器和项目

时间:2016-02-02 22:20:00

标签: .net angularjs asp.net-mvc

我是一个新角色试图用角度创建和MVC项目。 我创建了一个about.js文件,这是其中的代码:

(function () {
    var app = angular.module('myApp', []);

    app.controller('TecknologiesController', function () {
        this.text = tech;
    });
    var tech = {
        name: 'Progamming',
        csharp: 'C#',
        asp: 'ASP .NET',
        xaml:'XAML',
        java: 'java',
        sql: 'SQL',
        plsql: 'PL/SQL',
        xml: 'XML',
        webs: 'Web Services'
    }
})();

我已将我的脚本标记添加到_layout.cshtml文件的正文中,如下所示:

<body>
    <script type="text/javascript" src="angular.min.js"></script>
    <script type="text/javascript" src="About.js"></script>

在我的About.cshtml文件中,我有这段代码来展示我的about.js中的一个技术项目 这是我的代码:

<div ng-app="myApp" ng-controller="TecknologiesController as tech">
    <div>{{tech.text.name}}</div>
</div>

但这不适合我。它打印出 {{tech.text.name}} 作为文本。 我添加脚本标签错误或什么? 它在小提琴中正常工作:http://jsfiddle.net/pYh89/1/

1 个答案:

答案 0 :(得分:1)

ng-controller =“TecknologiesController as tech”让'tech'指向这一点。

我认为你想要的是:

<div>{{tech.tech.name}}</div>

你的HTML:

(function () {
    var app = angular.module('myApp', []);

    app.controller('TecknologiesController', function () {
        var tech = this;
        tech.name = 'Programming;
        tech.csharp = 'C#';
        // etc ...
    });
})();

如果在使用之前声明并分配了var tech = ...真的会更好。

你也可以这样:

<div>{{tech.name}}</div>

这将允许您更直接地访问名称

.popover-content {
    white-space: pre-wrap;
}

但是既然我不知道你真正想做什么,那就是我现在能回答的最好的。

你的主要问题,我认为你不明白这是技术所指的。