我添加了模块和控制器,但它没有工作。请指出我的错误,以便删除它们。
var app=angular.module("hello",[]);
app.controller("func",function()
{
this.products=gems;
});
var gems=[
name:Azhar,
gpa:2.8,
institute:UCP
];
**html code**
//html code of what I have done so far.
<script src="angular.min.js"></script>
<script src="world.js"></script>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<html>
<body ng-app="hello">
<div ng-controller="func">
{{products.name}};
</div>
</body>
</html>
答案 0 :(得分:2)
我已更正您的代码:
<强> HTML 强>
<!DOCTYPE html>
<html lang="en">
<head>
<script src="angular.min.js"></script>
<script src="world.js"></script>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body ng-app="hello">
<div ng-controller="func">
{{products.name}}
</div>
</body>
</html>
<强>的JavaScript 强>
var app = angular.module("hello", []);
app.controller("func", ['$scope', function ($scope) {
var gems = {
name: 'Azhar',
gpa: 2.8,
institute: 'UCP'
};
$scope.products = gems;
}]);
答案 1 :(得分:1)
您需要解决一些问题:
gems
从Array
更改为Object
$scope.products
而不是this.products
gems
定义后才$scope.products
gems
的字符串值
醇>
这是修复后的一个工作示例:
var gems = {
name:'Azhar',
gpa:2.8,
institute:'UCP'
};
var app=angular.module("hello",[]);
app.controller("func", function($scope){
$scope.products=gems;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="hello">
<div ng-controller="func">
{{products.name}};
</div>
</div>
&#13;
答案 2 :(得分:0)
尝试在控制器中使用Scope
变量。
var app=angular.module("hello",[]);
app.controller("func",function($scope)
{
$scope.products=gems;
});
此外,您没有正确使用数组变量。
添加ng-repeat
以访问数组元素。
<div ng-controller="func">
<div ng-repeat="product in products">
{{product.name}};
</div
</div>
这应该对你有用
修改强>
根据AngularJS文件:
当Controller通过
ng-controller
附加到DOM时 指令,Angular将使用。实例化new Controller object
指定Controller的构造函数。一个新的孩子scope
将是 创建并作为注入参数提供给Controller's constructor
的功能为$scope
。
有关详细信息,请参阅AngularJS controller documentation.
答案 3 :(得分:0)
我发现您的代码存在许多问题。我建议你在angularjs上关注good tutorial。
您可以将$ scope视为与当前控制器和HTML视图共享的公共对象。 它在$ scope中的所有内容都可以在&#34;双重绑定&#34;中进行操作。控制器和HTML之间的方式(可以从两种方式进行编辑)。
例如,这是您的代码:
app.controller("func",function()
{
this.products = gems; //don't do this, you html will don't ever know what "products" is.
});
应替换为:
app.controller("func",function($scope)
{
$scope.products = [{name:Azhar,gpa:2.8,institute:UCP}]; //note the $scope sintax, and the correct way to initialize an array of objects ({}).
});
如果&#34;产品&#34;它是一个数组,然后{{products.name}};
不会简单地工作,因为数组需要一个索引来处理。例如,{{products[0].name}};
将为您提供数组中第一个元素的名称。
<强>但是强>
通过使用ng-repeat,Angularjs为您提供了一种更好的方法来处理数组。例如:
<div ng-repeat="product in products track by $index">
{{product.name}}
</div>
将迭代您的数组并显示其中所有产品的名称。
答案 4 :(得分:0)
您需要对head进行一些更改并使用controllerAs,如下所示:
<html>
<head>
<script src="angular.min.js"></script>
<script src="world.js"></script>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
</head>
<body ng-app="hello">
<div ng-controller="func as prod">
{{prod.products.name}};
</div>
</body>
</html>