gpt4 book ai didi

javascript - 在此 Angular js 应用程序中, Controller 属性未显示在 View 中

转载 作者:行者123 更新时间:2023-11-28 19:00:22 25 4
gpt4 key购买 nike

下面是我的 AngularJS 应用程序中的 aap.js

var app = angular.module('gallery',[]);

(function(){

app.controller('GalleryController',function(){
this.tab = true;
});
})();

和 gallery.html 是:

<html ng-app="gallery">

<head>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="app.js"></script>
<link rel="shortcut icon" href="">
</head>
<body ng-contoller="GalleryController as g">
<section >
<ul>
<li><img ng-click="tab=1" src="images/gem-01.jpg" height="100" /></li>
</ul>
<h1>{{g.tab}}</h1>
</section>
</body>
</html>

g.tab 是 Controller 的一个属性,未在 View 中显示。为什么会这样?

最佳答案

再次编辑:我想念您的问题。您使用的 this 关键字是正确的,但是当您单击图像时,tab 属性不会显示,因为 ng-click 正在使用 tab 不是 g.tab。查看更新的更新的 fiddle : http://jsfiddle.net/z8uby8oz/2/

您不能像这样在 Controller 中使用 this 关键字。您的 Controller 方法的上下文不是您的范围。是的,您可以看到编辑。

您可以在服务中使用该语法,但不能在 Controller 中使用,而是将您的作用域与其他服务、工厂等一起注入(inject)。

应该是

app.controller('GalleryController',function($scope){
$scope.tab = true;
});

很可能是矫枉过正,但还是添加了 fiddle 来演示:http://jsfiddle.net/z8uby8oz/

编辑:这可以使用 this 关键字来实现。我不知道每天都能学到新东西。即通过在 ng-controller 中使用 as 运算符。

查看更新的 fiddle :http://jsfiddle.net/z8uby8oz/1/我在文档中找到了它:https://docs.angularjs.org/api/ng/directive/ngController#example

我的理解是 as 运算符将您的范围绑定(bind)到您 View 中的属性,您通过 test as myScope 意味着绑定(bind) this 关键字您的 test Controller 的 View 中的 myScope 属性。

希望这是有道理的。

关于javascript - 在此 Angular js 应用程序中, Controller 属性未显示在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com