我很困惑,在创建我的应用时开始。
当我点击添加按钮时,我想要显示一个表单 - 我是否将div添加到该按钮?
我如何攻击这个?
代码:
<body>
<div id="wrap">
<!-- Begin page content -->
<div classa="container">
<div class="page-header">
<h1>Birthday Reminders</h1>
</div>
<p>Data Here</p>
</div>
<div id="push"></div>
</div>
<div id="footer">
<div class="container">
<a href="#">Add</a>
</div>
</div>
<script type="text/javascript" src="js/cordova-2.5.0.js"></script>
<script type="text/javascript">
app.initialize();
</script>
</body>
答案 0 :(得分:70)
好的,从顶部开始! : - )
首先,您必须告诉AngularJS您正在使用它。 body
标记与任何地方一样好:<body ng-app="myApp">
。 This告诉AngularJS使用名为myApp
的模块作为应用程序的根。现在让我们来定义:
// app.js
var app = angular.module( 'myApp', [] );
第二个参数是依赖项数组。我们现在不用担心。所以现在我们有一个module。 AngularJS是一个MVC框架,因此我们还需要在某处定义一个控制器。我们将其添加到我们的app.js
文件中:
app.controller( 'MainCtrl', function( $scope ) {
// we control our app from here
});
$scope
变量是我们将控制器逻辑粘贴到视图的方式。说到这个视图,我们必须告诉AngularJS在某个地方使用这个控制器。让我们再次编辑body
标记:
<body ng-app="myApp" ng-controller="MainCtrl">
轰!我们的应用程序。所以现在AngularJS已经全部设置好了,所以我们可以解决你的问题。
您希望在某个操作上显示某些内容。有一个名为ngShow
的指令。当条件为真时,它将显示其中的内容:
<form ng-show="visible">
什么是visible
?那是expression。在这种情况下,它只是一个变量。定义在哪里?在我们的范围内!
app.controller( 'MainCtrl', function( $scope ) {
$scope.visible = false;
});
好的,现在开始时为false
;当我们点击按钮时,我们如何将其更改为true
?有一个名为ngClick
的指令,它也带有一个表达式:
<a class="btn" ng-click="visible = true">Show the Form</a>
在这种情况下,我们的表达式会将visible
变量更改为true
。然后立即显示表单!这是一个完整的Plunker:http://plnkr.co/edit/Kt4dR2tiTkShVYWCqQle?p=preview
欢迎来到AngularJS!
以下是您应该了解的一些补充资源:
并加入我们的Mailing List!我们是好人。
答案 1 :(得分:1)
听起来你刚刚开始测试Angular。我现在只用了一个星期了。当你意识到它们是如何工作的时候,事情就很酷了。希望有更好/更多的文档。 我提出了一个快速JSFiddle example听起来像你正在寻找的东西。如果这有点像你在寻找的那些,请告诉我。应该完全运作。
<div ng-controller="bdayCtrl">
<h3>Birthday Reminders</h3>
<table border="1">
<tr ng-repeat="bday in bdays">
<td>{{bday.name}}</td>
<td>{{bday.date}}</td>
</tr>
</table>
<a class="btn" ng-click="visible = true">Add new</a><br>
<form class="form-horizontal" ng-show="visible" ng-submit="newDate()">
<input type="text" ng-model="bdayname" placeholder="Name"><br>
<input type="text" ng-model="bdaydate" placeholder="Birthdate">
<button class="btn" type="submit"><i class="icon-plus"></i>Add</button>
</form>
</div>
你的剧本:
var app = angular.module('myApp', []);
function bdayCtrl($scope) {
$scope.bdays = [{
"name": "Jamal",
"date": "Jan 1, 1980"
}, {
"name": "Paula",
"date": "Jan 1, 2000"
}, {
"name": "Damon",
"date": "Jun 30, 1800"
}];
$scope.newDate = function () {
$scope.bdays.push({name:$scope.bdayname, date:$scope.bdaydate});
$scope.bdayname = '';
$scope.bdaydate = '';
};
}
答案 2 :(得分:0)
您可以找到一个简单且更复杂的例子来创建没有先验知识的Angular应用程序:
和
它们应该有助于简化熟悉。