Javascript 为什么我的';ng咔哒声';和';ng节目';需要我将控制器别名与正在传递的函数一起传递吗?
对不起,如果这是愚蠢的,但我是相当新的角度 为什么ng click(和ng show,但没有函数)要求我在调用函数的同时传递控制器名称 我的代码是有效的,我只是想知道,如果我不使用“timeTrackerCtrl.something”,为什么有些东西不起作用? 这是我的密码: index.htmlJavascript 为什么我的';ng咔哒声';和';ng节目';需要我将控制器别名与正在传递的函数一起传递吗?,javascript,angularjs,Javascript,Angularjs,对不起,如果这是愚蠢的,但我是相当新的角度 为什么ng click(和ng show,但没有函数)要求我在调用函数的同时传递控制器名称 我的代码是有效的,我只是想知道,如果我不使用“timeTrackerCtrl.something”,为什么有些东西不起作用? 这是我的密码: index.html <!DOCTYPE html> <html ng-app="timeTrackerApp"> <head> <script src="
<!DOCTYPE html>
<html ng-app="timeTrackerApp">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body ng-controller="TimeTrackerController as timeTrackerCtrl">
<!-- Task Form Container -->
<div>
<!-- Task Form -->
<div>
<form name="taskForm" ng-submit="timeTrackerCtrl.addTask(tempTask)">
<input ng-model="timeTrackerCtrl.tempTask.name" required type="text" placeholder="what are you working on?" title="Task Name" />
<select ng-model="timeTrackerCtrl.tempTask.project" ng-options="project.name as project.name for project in timeTrackerCtrl.projects" title="name">
<option value="">+ project</option>
</select>
<input type="submit" value="▶" />
</form>
</div>
</div>
<!-- Tasks Container -->
<div id="taskContainer">
<!-- Live Preview -->
<div class="taskLine" ng-show="timeTrackerCtrl.tempTask.name">
<div class="date"><p>{{timeTrackerCtrl.today | date:'d MMM'}}</p></div>
<div>
<div ng-show="timeTrackerCtrl.tempTask.star" ng-click="timeTrackerCtrl.tempTask.star = false" class="star activeStar">★</div>
<div ng-hide="timeTrackerCtrl.tempTask.star" ng-click="timeTrackerCtrl.tempTask.star = true" class="star">☆</div>
<div class="taskName">{{timeTrackerCtrl.tempTask.name}}</div>
<div><span ng-show="timeTrackerCtrl.tempTask.project != null" class="projectBlock">{{timeTrackerCtrl.tempTask.project}}</span></div>
<div ng-repeat="tag in timeTrackerCtrl.tempTask.tags track by $index" class="tagBlock">{{tag}}</div>
</div>
</div>
<div ng-repeat="task in timeTrackerCtrl.tasks">
<div ng-show="task.timing" ng-click="timeTrackerCtrl.taskEnd(task.end);"></div>
<div>{{task.name}}</div>
<div>{{task.project}}</div>
<div ng-repeat="tag in task.tags track by $index">{{tag}}</div>
<div>{{task.end ? timeTrackerCtrl.finalTime(task.start,task.end) : 'currentTime'}}</div>
</div>
</div>
</body>
</html>
你应该用这个
我建议你去看看。这是一个非常好的入门教程。你应该使用它
我建议你去看看。这是一个非常好的入门教程。你应该使用它
我建议你去看看。这是一个非常好的入门教程。你应该使用它
我建议你去看看。这是一个非常好的入门教程。完成对@kozlice的解释:如果您使用$scope而不是这个,您将能够在没有控制器实例的情况下调用函数。噢,这就是为什么我在教程中到处都看到$scope。我只上过codeschool.com上的免费课程,看起来很不错,但只使用了“this”,似乎从未遇到过这个问题。有没有不使用$scope的场景我应该使用“this”来代替?很可能没有(除非你在指令控制器中做了一些非常复杂的事情)完成对@kozlice的解释:如果您使用$scope而不是这个,您将能够在不使用controller.Aw实例的情况下调用函数,这就是为什么我在教程中到处都看到$scope。我只上过codeschool.com上的免费课程,看起来很不错,但只使用了“this”,似乎从未遇到过这个问题。有没有不使用$scope的场景我应该使用“this”来代替?很可能没有(除非你在指令控制器中做了一些非常复杂的事情)完成对@kozlice的解释:如果您使用$scope而不是这个,您将能够在不使用controller.Aw实例的情况下调用函数,这就是为什么我在教程中到处都看到$scope。我只上过codeschool.com上的免费课程,看起来很不错,但只使用了“this”,似乎从未遇到过这个问题。有没有不使用$scope的场景我应该使用“this”来代替?很可能没有(除非你在指令控制器中做了一些非常复杂的事情)完成对@kozlice的解释:如果您使用$scope而不是这个,您将能够在不使用controller.Aw实例的情况下调用函数,这就是为什么我在教程中到处都看到$scope。我只上过codeschool.com上的免费课程,看起来很不错,但只使用了“this”,似乎从来没有遇到过这个问题。有没有不使用$scope的场景我应该使用“this”来代替?很可能没有(除非你在指令控制器中做了一些非常复杂的事情)。
(function() {
var app = angular.module('timeTrackerApp', []);
app.controller('TimeTrackerController', function() {
this.tasks = taskObjects;
this.projects = projectsInfo;
this.today = Date.now();
this.tempTask = {};
this.addTask = function() {
this.tempTask.star = false;
this.tempTask.start = Date.now();
this.tempTask.timing = true;
this.tasks.push(this.tempTask);
this.tempTask = {};
};
this.taskEnd = function(taskend) {
taskend = Date.now();
alert(taskend);
return taskend;
};
this.finalTime = function(starttime,endtime) {
totalTime = endtime - starttime;
return totalTime;
};
});
var projectsInfo = [
{
...
}, {
...
}
];
var taskObjects = [
{
...
}, {
...
}
];
})();