Chuyển đến nội dung chính

Bài đăng

AngularJs: Chạy 2 ứng dụng Angularjs độc lập trên cùng 1 trang

Angularjs chỉ tự động chạy một ứng dụng AngularJs cho mỗi trang Html document. Để chạy được nhiều ứng dụng AngularJs, bạn phải tự bootstrap bằng tay. Hàm angular.bootstrap: được sử dụng để tự khởi động ứng dụng Angularjs Cú pháp: angular . bootstrap ( element , [ modules ]); element: DOM element- phần tử gốc của ứng dụng modules: mảng chứa tên các module được load cùng ứng dụng

AngularJs: Giao tiếp giữa các controller

AngularJs Scope được tổ chức theo dạng phân cấp và lồng nhau. Mỗi ứng dụng có duy nhất 1 $rootScope. Các $scope khác đều kế thừa và nằm dưới nó. Trường hợp bạn muốn chia sẽ dữ liệu giữa các controller, thì có rất nhiều cách khác nhau. Angularjs hỗ trợ 2 phương thức: $broadcast và $emit. Vận dụng 2 hàm này, bạn có thể chia sẽ dữ liệu dễ dàng, đặc biệt là nó rất hữu ích khi bạn làm ứng dụng Single Page Application. $broadcast: lan truyền sự kiện xuống các con của nó $emit: lan truyền sự kiện theo hướng lên trên

Tạo file Excel từ Server

Khi tạo file Excel từ Server, bạn nên dùng nhưng thư viện không phụ thuộc vào chương trình Microsoft Excel.  Điều này rất quan trọng, vì bạn sẽ bị hạn chế, không được quyền cài đặt phần mềm lên 1 hosting mà bạn thuê. Một trong những thư viện không phụ thuộc vào phần mềm Excel là NPOI và EPPlus. Dùng NPOI, bạn tạo được file Excel 2003 và Excel 2007, nhưng cú pháp rắc rối và ít tài liệu hướng dẫn. Dùng EPPlus, bạn sẽ tạo được file Excel dễ dàng hơn. Trong bài viết này, mình sẽ hướng dẫn bạn tạo file Excel từ danh sách có sẵn.

Tìm kiếm chuỗi tiếng Việt

Nếu database cũa bạn là SQL Sever thì khi tạo database mới bạn nên dùng Collation là SQL_Latin1_General_CP1_CI_AI hay khi bạn tạo table mới thì set column đó dùng SQL_Latin1_General_CP1_CI_AI cũng được. CREATE TABLE SinhVien ( mahs VARCHAR(10), ten nvarchar(30) COLLATE SQL_Latin1_General_CP1_CI_AI, diachi nvarchar(30) COLLATE SQL_Latin1_General_CP1_CI_AI ) Khi đó chĩ cần viết câu truy vấn như sau là được rồi. SELECT * FROM SinhVien WHERE ten LIKE '%luong%' Còn nếu không tạo database hay column bằng collation SQL_Latin1_General_CP1_CI_AI thì viết câu truy vấn bằng cách thêm COLLATE SQL_Latin1_General_CP1_CI_AI phía sau: Using SQL Syntax Highlighting SELECT * FROM SinhVien WHERE ten LIKE '%luong%' COLLATE SQL_Latin1_General_CP1_CI_AI Tham khảo: http://www.caulacbovb.com/forum/viewtopic.php?t=19993

AngularJs: Bundling và Minification

Bundling và Minification là 2 công nghệ giúp bạn giảm thời gian tải dữ liệu của 1 trang web. Giải pháp là giảm số lượng yêu cầu tới server và giảm kích thước file (javascript và css). Đối với trường hợp jquery, javascript, giải pháp này phát huy được tính hiệu quả. Nhưng với AngularJs hoặc với KnockoutJs thì sẽ gặp trường hợp lỗi do UI data binding với tên biến ($scope.variable-name) nằm trong hàm javascript. Đầu tiên bạn thiết lập đường dẫn file cần nén và mã hóa trong BundleConfig.cs: bundles.Add(new ScriptBundle("~/bundles/home-module").Include( "~/Scripts/app/home-module.js")); File: home-module.js chứa ứng dụng viết bằng Angularjs (function () { 'use strict'; // Module name is handy for logging var id = 'home_module'; // Create the module and define its dependencies. var home_module = angular.module('home_module', []); home_module.constant('yourApp', 'AbtTest'); home_module.fac...

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.