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



我是角度新手,试图用角度创建和MVC项目。我创建了一个关于.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 文件中,我有这段代码来显示我的关于中的一个技术项目.js这是我的代码:

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

但这对我不起作用。 它将 {{tech.text.name}} 打印为文本。我添加的脚本标签是错误的还是什么?它在小提琴中工作正常:http://jsfiddle.net/pYh89/1/

ng-controller="TecknologiesController as tech"使"tech"指出了这一点。

我想你想要的是:

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

和你的 HTML:

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

如果var技术=...在使用它之前声明并分配。

你也可以这样做:

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

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

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

但是由于我不知道你真正想做什么,这是我目前能回答的最好的答案。

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

最新更新