4.1.1 Thư mục controller:
Là phần lấy dữ liệu từ server, xử lý và hiển thị lên giao diện.
- homeController.js: Lấy dữ liệu số từ đã học từ server để hiển thị. Khi ấn vào nút "Học lại từ đầu" thì đặt số từ đã học bằng 0. Lưu lại trên server.
Code:
var myapp = angular.module('myapp');
myapp.controller('homeController', ['$scope', 'svTuMoi', 'svSTDH', function ($scope, svTuMoi, svSTDH) {
svSTDH.get().success(function (data) {
//Lấy dữ liệu số từ đã học từ server
$scope.soTuDaHoc = data[0].sotudahoc;
//Đk hiện nút "Học lại từ đầu" và "Ôn lại các từ đã học"
if ($scope.soTuDaHoc > 2){
$scope.hien = true;
}
// Khi ấn vào nút học lại thì đặt lại số từ đã học = 0.
$scope.hoc_lai = function(){
$scope.soTuDaHoc = 0;
data[0].sotudahoc = $scope.soTuDaHoc;
//Lưu lại trên server
svSTDH.update(data[0]);
};
});
}]);
- tuMoiController.js: Lấy dữ liệu về số từ đã học và từ mới để hiển thị; cập nhật thông tin số từ đã học lên server.
Code
svSTDH.get().success(function (data) {
//Lấy dữ liệu số từ đã học từ server
$scope.soTuDaHoc = data[0].sotudahoc;
//Lấy từ mới từ service svTuMoi
$scope.tu_moi = svTuMoi.tu_moi;
$scope.soTuDaHoc++;
//Hiển thị từ mới: từ, nghĩa, loại từ, cách đọc
$scope.tu = $scope.tu_moi[$scope.soTuDaHoc - 1].tu;
$scope.nghia = $scope.tu_moi[$scope.soTuDaHoc - 1].nghia;
$scope.loai_tu = $scope.tu_moi[$scope.soTuDaHoc -1].loai_tu;
$scope.phat_am = $scope.tu_moi[$scope.soTuDaHoc - 1].phat_am;
//Cập nhật lại số từ đã học lên server
data[0].sotudahoc = $scope.soTuDaHoc;
svSTDH.update(data[0])
//Chuyển từ tiếp theo
$scope.click = function () {
$scope.soTuDaHoc++;
$scope.tu = $scope.tu_moi[$scope.soTuDaHoc - 1].tu;
$scope.nghia = $scope.tu_moi[$scope.soTuDaHoc -1 ].nghia;
$scope.loai_tu = $scope.tu_moi[$scope.soTuDaHoc - 1].loai_tu;
$scope.phat_am = $scope.tu_moi[$scope.soTuDaHoc - 1].phat_am;
// Cập nhật lại số từ đã học
data[0].sotudahoc = $scope.soTuDaHoc;
svSTDH.update(data[0]);
};
});
- tracNghiemController.js:lấy dữ liệu số từ đã học từ server, từ mới từ service svTuMoi để tạo câu hỏi dạng trắc nghiệm.
Code:
svSTDH.get().success(function (data) {
//Lấy dữ liệu số từ đã học từ server
$scope.soTuDaHoc = data[0].sotudahoc;
//Lấy từ mới từ service svTuMoi
$scope.tu_moi = svTuMoi.tu_moi;
if ($scope.soTuDaHoc > 2){
$scope.soTuDaHoc = $scope.soTuDaHoc - 3;
}
//thứ tự hiển thị các đáp án
$scope.a = 0;
$scope.b = 0;
$scope.c = 0;
$scope.d = 0;
//Dùng hàn random để trộn thứ tự đáp án
$scope.rand = function(){
$scope.a = Math.floor(Math.random() * 4);
$scope.b = Math.floor(Math.random() * 4);
$scope.b = Math.floor(Math.random() * 4);
while($scope.a === $scope.b){
$scope.b = Math.floor(Math.random() * 4);
}
while($scope.a === $scope.c || $scope.b === $scope.c){
$scope.c = Math.floor(Math.random() * 4);
}
$scope.d = 6 - ($scope.a + $scope.b + $scope.c);
};
//Đk hiển thị nút "Tiếp theo"
$scope.sai = false;
$scope.dung = false;
//Đáp án
$scope.tu = $scope.tu_moi[$scope.soTuDaHoc].tu;
$scope.nghia = $scope.tu_moi[$scope.soTuDaHoc].nghia;
$scope.rand();
//Hiển thị đáp án
$scope.nghia1 = $scope.tu_moi[$scope.soTuDaHoc + $scope.a].nghia;
$scope.nghia2 = $scope.tu_moi[$scope.soTuDaHoc + $scope.b].nghia;
$scope.nghia3 = $scope.tu_moi[$scope.soTuDaHoc + $scope.c].nghia;
$scope.nghia4 = $scope.tu_moi[$scope.soTuDaHoc + $scope.d].nghia;
$scope.soTuDaHoc++;
//Chuyển từ tiếp theo
$scope.click = function () {
$scope.dung = false;
$scope.sai = false;
$scope.tu = $scope.tu_moi[$scope.soTuDaHoc].tu;
$scope.nghia = $scope.tu_moi[$scope.soTuDaHoc].nghia;
$scope.rand();
$scope.nghia1 = $scope.tu_moi[$scope.soTuDaHoc + $scope.a].nghia;
$scope.nghia2 = $scope.tu_moi[$scope.soTuDaHoc + $scope.b].nghia;
$scope.nghia3 = $scope.tu_moi[$scope.soTuDaHoc + $scope.c].nghia;
$scope.nghia4 = $scope.tu_moi[$scope.soTuDaHoc + $scope.d].nghia;
$scope.soTuDaHoc++;
};
//Chọn đáp án 1
$scope.chon_dap_an_1 = function(){
if ($scope.nghia1 === $scope.nghia){
$scope.dung = true;
$scope.sai = false;
} else {
$scope.sai = true;
$scope.dung = false;
}
};
//Chọn đáp án 2
$scope.chon_dap_an_2 = function(){
if ($scope.nghia2 === $scope.nghia){
$scope.dung = true;
$scope.sai = false;
} else {
$scope.sai = true;
$scope.dung = false;
}
};
//Chọn đáp án 3
$scope.chon_dap_an_3 = function(){
if ($scope.nghia3 === $scope.nghia){
$scope.dung = true;
$scope.sai = false;
} else {
$scope.sai = true;
$scope.dung = false;
}
};
//Chọn đáp án 4
$scope.chon_dap_an_4 = function(){
if ($scope.nghia4 === $scope.nghia){
$scope.dung = true;
$scope.sai = false;
} else {
$scope.sai = true;
$scope.dung = false;
}
};
});
- dienTuController.js : lấy dữ liệu số từ đã học từ server, từ mới từ service svTuMoi để tạo câu hỏi dạng điền từ.
Code:
svSTDH.get().success(function (data) {
//Lấy dữ liệu số từ đã học từ server
$scope.soTuDaHoc = data[0].sotudahoc;
//Lấy từ mới từ service svTuMoi
$scope.tu_moi = svTuMoi.tu_moi;
if ($scope.soTuDaHoc > 2){
$scope.soTuDaHoc = $scope.soTuDaHoc - 3;
}
//Đk hiển thị nút để đi tiếp
$scope.dung = false;
//Hiển thị nghĩa
$scope.nghia = $scope.tu_moi[$scope.soTuDaHoc].nghia;
//Đáp án
$scope.tu = $scope.tu_moi[$scope.soTuDaHoc].tu;
//Từ tiếp theo
$scope.soTuDaHoc++;
//Theo dõi khi người dùng điền đáp án
$scope.$watch('dien', function(){
//Nếu đáp án đúng thì hiển thị nút để đi tiếp
if ($scope.dien === $scope.tu){
$scope.dung = true;
} else {
$scope.dung = false;
}
});
$scope.click = function(){
//Khi ấn vào nút "Tiếp theo", sẽ thay đổi từ
$scope.dien = "";
$scope.dung = false;
$scope.nghia = $scope.tu_moi[$scope.soTuDaHoc].nghia;
$scope.tu = $scope.tu_moi[$scope.soTuDaHoc].tu;
$scope.soTuDaHoc++;
};
});