私はMEANスタック開発の初心者で、Todo Appをやっています。私はタスクシートを作成して、anglejを使って特定のタスクシートにtodoを格納しています。angularjsのコントローラから特定の関数を呼び出すことはできますか?
最初は、自分が所属するタスクシートを考慮せずに、すべてのtodosを取得していただけでなく、todosを作成していました。今私はその特定のタスクシートのためだけにtodosを取得するためにそれを強化したいと思います。私はそれを動的にロードしたいので、TaskIDが変更されている値'/:TaskID'
のrouteProviderを使用しています。したがって、TaskIDが存在する場合、私は関数を使用しています。そうでなければすべてを取得します。
このような何か:代わりのif-elseを使っての
if($routeParams.TaskID) {
var id = $routeParams.TaskID;
Todos.getTodosForId(id)
.success(function(data) {
$scope.loading = false;
$scope.formData = {}; // clear the form so our user is ready to enter another
$scope.todos = data; // assign our new list of todos
});
} else {
// GET=====================================================================
// when landing on the page, get all todos and show them
// use the service to get all the todos
Todos.get()
.success(function(data) {
for(var i = 0; i < data.length; i++) {
$scope.todos.push(data[i]);
}
$scope.loading = false;
});
}
、それは独立したそれらを維持することは可能でしょうか?私はそれらの両方を使用可能にして、その状態を取り除きたいと思っています。こっちメソッドを呼び出すことが可能です:特定のタスクIDの場合 :すべてトドスについては
.when('/:TaskID',
{
templateUrl: "app.html",
controller: "mainController"
})
:
は.when('/',
{
templateUrl: "app.html",
controller: "mainController"
})
もう一つの問題は、その特定tasksheetのしばらくの間、ドスを表示する方法であり、タスクシートの作成?
画像に示されているように、私のページが代わりに作成することがまだある一つで、すべてのドスを示しています。だから、すべてのtodosを表示する代わりに、それは最初に私にNo Todos
を示す必要があります。私がtodosを追加し始めると、その作業シートの下にtodosだけが表示されるはずです。私はちょっと混乱しています。それを実現するにはどうすればいいですか?
の両方が、次の2つの異なる経路のタスクを作成することができます可能であり、/all 'と' tasks /:taskId 'ORを指定するか、task /:IDを1つ定義し、実際のIdまたは' All 'をパラメータとして渡し、今のようにIF/ELSEを実行します。 – codin
また、 '$ scope.todos.push(data [i]);'を実行する必要はありません。 '$ scope.todos = data;'を実行するだけでforループを完全にスキップできます。 – codin
はい、可能です。/all'と 'tasks /:taskId'と私は少しでもやっています。しかし、それらの特定の関数をどのように呼び出すか?これはコントローラにドロップされますが、機能はどうですか? –