Tag Archives: Angular.JS

অ্যাঙ্গুলার জেএস (AngularJS) এবং টুইটার বুটস্ট্র্যাপ

Huge Sell on Popular Electronics

অ্যাঙ্গুলার জেএস (AngularJS) এবং টুইটার বুটস্ট্র্যাপ

মো: আসাদুজ্জামান (Md. Asaduzzaman)
ফ্রিল্যান্সার (ওয়েব ডিজাইনার এবং ডেভেলপার)

 

বুটস্ট্র্যাপ একটি জনপ্রিয় স্টাইল শিট (style sheet) এই অধ্যায়ে AngularJS সঙ্গে কিভাবে এটি ব্যবহার হয় দেখানো হবে।

 

বুটস্ট্র্যাপ
আপনার AngularJS এপ্লিকেশন এ বুটস্ট্র্যাপ অন্তর্ভুক্ত করার জন্য, আপনার <head> এলিমেন্ট এর মধ্যে নিম্নলিখিত লাইনটি যোগ করুন:

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">

আপনি বুটস্ট্র্যাপ অধ্যয়ন করতে চান, আমাদের বুটস্ট্র্যাপ টিউটোরিয়ালে যান.

নীচে একটি সম্পূর্ণ এইচটিএমএল উদাহরণ সহ সকল AngularJS নির্দেশ এবং বুটস্ট্র্যাপ ক্লাস ব্যাখ্যা করা হয়েছে।

 

এইচটিএমএল কোড
<!DOCTYPE html>
<html ng-app="">
<head>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
</head>

<body ng-controller="userController">
<div class="container">

<h3>Users</h3>

<table class="table table-striped">
<thead><tr>
<th>Edit</th>
<th>First Name</th>
<th>Last Name</th>
</tr></thead>
<tbody><tr ng-repeat="user in users">
<td>
<button class="btn" ng-click="editUser(user.id)">
<span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;Edit
</button>
</td>
<td>{{ user.fName }}</td>
<td>{{ user.lName }}</td>
</tr></tbody>
</table>

<hr>
<button class="btn btn-success" ng-click="editUser('new')">
<span class="glyphicon glyphicon-user"></span> Create New User
</button>
<hr>

<h3 ng-show="edit">Create New User:</h3>
<h3 ng-hide="edit">Edit User:</h3>

<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">First Name:</label>
<div class="col-sm-10">
<input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Last Name:</label>
<div class="col-sm-10">
<input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Last Name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Password:</label>
<div class="col-sm-10">
<input type="password" ng-model="passw1" placeholder="Password">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Repeat:</label>
<div class="col-sm-10">
<input type="password" ng-model="passw2" placeholder="Repeat Password">
</div>
</div>
</form>

<hr>
<button class="btn btn-success" ng-disabled="error || incomplete">
<span class="glyphicon glyphicon-save"></span> Save Changes
</button>
</div>

<script src = "myUsers.js"></script>
</body>
</html>

 

এটা নিজে চেষ্টা করে দেখুন

ডিরেক্টিভ (Directives) (উপরে ব্যবহৃত) ব্যাখ্যা
AngularJS ডিরেক্টিভ বর্ণনা
<html ng-app ডিফাইন করে (unnamed) এপ্লিকেশন <html> এলিমেন্ট এর জন্য
<body ng-controller একটি কন্ট্রোলার ডিফাইন করে <body> এলিমেন্ট এর জন্য
<tr ng-repeat <tr> এলিমেন্ট রিপিট করে প্রত্যেক ইউজার এর ইউজারগুলোর মধ্যে
<button ng-click editUser() ফাংশনকে কল করে যখন <button> এ ক্লিক করা হয়
<h3 ng-show <h3> এলিমেন্ট প্রদর্শন করে যদি edit = true
<h3 ng-hide <h3> এলিমেন্ট অদৃশ্য করে যদি edit = true
<input ng-model <input> এলিমেন্ট বাধাই করে এপ্লিকেশন এর মধ্যে।
<button ng-disabled <button> এলিমেন্ট নিস্ক্রিয় করে যদি কোন ভূল বা অপরিপূর্ণতা থাকে incomplete = true

________________________________________
বুটস্ট্র্যাপ ক্লাস এ ব্যাখ্যা
এলিমেন্ট বুটস্ট্র্যাপ ক্লাস ডিফাইনস
<div> container একটি কন্টেন্ট কন্টেইনার
<table> table একটি টেবিল
<table> table-striped একটি স্ট্রাইপড টেবিল
<button> btn একটি বাটন
<button> btn-success একটি সফল বাটন
<span> glyphicon একটি গ্লিফ আইকন
<span> glyphicon-pencil একটি পেন্সিল আইকন
<span> glyphicon-user একটি ইউজার আইকন
<span> glyphicon-save একটি সংরক্ষন আইকন
<form> form-horizontal একটি হরিজন্টাল ফরম
<div> form-group একটি ফরম গ্রুপ
<label> control-label একটি কন্ট্রোল লেবেল
<label> col-sm-2 একটি ২ কলাম স্প্যান
<div> col-sm-10 একটি ১০ কলাম স্প্যান

________________________________________
জাভাস্ক্রিপট কোড
function userController($scope) {
$scope.fName = '';
$scope.lName = '';
$scope.passw1 = '';
$scope.passw2 = '';
$scope.users = [
{id:1, fName:'Hege', lName:"Pege" },
{id:2, fName:'Kim', lName:"Pim" },
{id:3, fName:'Sal', lName:"Smith" },
{id:4, fName:'Jack', lName:"Jones" },
{id:5, fName:'John', lName:"Doe" },
{id:6, fName:'Peter', lName:"Pan" }
];
$scope.edit = true;
$scope.error = false;
$scope.incomplete = false;

$scope.editUser = function(id) {
if (id == 'new') {
$scope.edit = true;
$scope.incomplete = true;
$scope.fName = '';
$scope.lName = '';
} else {
$scope.edit = false;
$scope.fName = $scope.users[id-1].fName;
$scope.lName = $scope.users[id-1].lName;
}
};

$scope.$watch('passw1',function() {$scope.test();});
$scope.$watch('passw2',function() {$scope.test();});
$scope.$watch('fName', function() {$scope.test();});
$scope.$watch('lName', function() {$scope.test();});

$scope.test = function() {
if ($scope.passw1 !== $scope.passw2) {
$scope.error = true;
} else {
$scope.error = false;
}
$scope.incomplete = false;
if ($scope.edit && (!$scope.fName.length ||
!$scope.lName.length ||
!$scope.passw1.length || !$scope.passw2.length)) {
$scope.incomplete = true;
}
};

}

________________________________________
জাভাস্ক্রিপ্ট কোড এর ব্যাখ্যা
স্কোপ প্রপার্টিজ ব্যবহার করা হয়েছে
$scope.fName মডেল ভেরিয়েবল (ইউজার ফার্স্ট নেম)
$scope.lName মডেল ভেরিয়েবল ((ইউজার লাস্ট নেম)
$scope.passw1 মডেল ভেরিয়েবল (ইউজার পাসওয়ার্ড ১)
$scope.passw2 মডেল ভেরিয়েবল (ইউজার পাসওয়ার্ড ১))
$scope.users মডেল ভেরিয়েবল (অ্যারে অব ইউজার)
$scope.edit সেট true যখন ইউজার ক্রিয়েট ইউজার এ ক্লিক করে.
$scope.error সেট true যদি passw1 passw2 এর মত না হয়
$scope.incomplete সেট true যদি কোন ফিল্ড ফাকা থাকে (length = 0)
$scope.editUser সেট মডেল ভেরিয়েবল
$scope.watch ওয়াচেস মডেল ভেরিয়েবল
$scope.test টেস্ট মডেল ভেরিয়েবল ভূল অথবা অপরিপূর্ণতার জন্য।

AngularJS Templates এর নিরাপত্তা।

Huge Sell on Popular Electronics

URL of translated tutorial
http://sitestree.com/securing-your-angularjs-applications/
Paste written translation here
AngularJS Templates এর নিরাপত্তা।
Md. Shahinoor Islam
যদি আপনি চান তবে আপনি এটা ($templateCache caches templates) ব্যবহার করতে পারেন। প্রত্যেক user কে login করার সময় cache টা remove করতে হবে।
নিচের উদাহরনটি আপনাকে সাহায্য করবে,
Cache-Control: no-cache, no-store, must-revalidate
Pragma : no-cache
Expires : 0
https ব্যবহার snooping এর জন্য সুবিধাজনক , না করলে মাঝখানে কিছু অসুবিধা হতে পারে।
আপনাকে JSON Injection এর আক্রমন প্রতিরোধ করতে হবে।
প্রতিরোধ করতে আপনি নিচের উধাহরনটি লক্ষ্য করুন।
আপনার JSON এর পুর্বে লিখুন এটি )]}’, যদিও এটা বৈধ নয়।
client side থেকে XSS এর আক্রমন দূর করতে হবে।
AngularJS সব HTML প্রদর্শন করে যা ng-bind directive, or template interpolation এর মাধমে text এর ভিতর দেখা দেখা যায় (that is text in {{curly braces}}).

AngularJS এর performance উন্নতি

Huge Sell on Popular Electronics

http://sitestree.com/performance-improvement-of-angularjs-applications-writing-robust-angulajs-applications/
Paste written translation here
AngularJS এর performance উন্নতি
Application: জোরালো AngulaJS application লেখা।
Md. Shahinoor IslamAngularJS এর performance উন্নতি, Application: জোরালো AngulaJS application লেখা।
মুলত আপনার যোগ্যতা পরিমাপ করতে হবে এবং ফলাফলের উপর কৌশল প্রয়োগ করে আবেদন করতে হবে।
আপনার জানাটা ভুল হতে পারে যদি আপনি এটা বাস্তব জীবনে প্রয়োগ না করেন। তাছাড়া যোগ্যতার পরিক্ষায় real অথবা simple Data আপনাকে সাহায্য করতে পারে এটি Application এর উপর নির্ভর করে।এটা ঠিক যে, আমার খুব একটা অভিঞতা নেই কিন্তু সঠিক পরামর্শ হল যে, আপনাকে $digest loops ব্যবহার সম্পর্কে সাবধান হতে হবে। 50 loops or 100 loops এর বেশি পুনরাবৃত্তি আপনার application কে অচল করে দিতে পারে।
$digest loops এর ভিতরের watch number গুলো এবং তাড়াতাড়ি সেগুলো কাজ করতে পারে, এগুলো application এর যোগ্যতার প্রভাব ফেলে দেয়। আপনি number of watches কমাতে পারেন অথবা দ্রুত গতি সুম্পর্ন করতে পারেন। আপনি মনিটর মেমরি ব্যবহার করতে পারেন। মেমরির ব্যবহার কমিয়ে দিলে আপনার application দ্রুতগতি সম্পুর্ন হতে পারে।
ng-repeat directive টি খুব ক্ষমতা সম্পুর্ন। যদি আপনি 100s ধরনের কাজ করার জন্য ng-repeat ব্যবহার করেন তবে এটি আপনার application কে অচল করে দিতে পারে। তাই আপনার collections টি সীমিত করুন অথবা আপনার উদ্দেশ্য সফল করার জন্য custom directives দিয়ে লিখুন। অন্যথায় এমন ভাবে কাজটি করুন যাতে আপনাকে খুব বেশি চাপ প্রয়োগ না করে, যা আপনাকেই ভাবতে হবে

AngularJS এ নিজের/Custom Directives তৈরি। building-your-own-directives-in-angularjs

Huge Sell on Popular Electronics

AngularJS এর মাধ্যমে নিজের Directives তৈরি।
Md. Shahinoor Islamনিজের Directives তৈরি।
HTML উপাদান, মন্তব্য বা CSS classes দিয়ে Directives প্রদর্শন করতে পার। উদাহরনঃ

<my-directive></my-directive>
<input my-directive>
<!– directive: my-directive–>
<input>

একটি Directive এর ধারনা
angular.module(‘app’, []).directive(‘myDir’, function() {
return myDirectiveDefinition;
});

একটি Button Directive লেখা
escribe(‘button directive’, function () {
var $compile, $rootScope;
beforeEach(module(‘directives.button’));
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
}));
it(‘adds a “btn” class to the button element’, function() {
var element = $compile(‘<button></button>’)($rootScope);
expect(element.hasClass(‘btn’)).toBe(true);
});
});
});

button directive ব্যবহার
<button type=”submit”
>Click Me!</button>

একটি Custom Validation Directives প্রবর্তন
একটি Custom Validation directive প্রবর্তন

এই জায়গায় আমাদের একটা test আছে, সুতরাং আমরা directive এর কার্যকারিতা বাস্তবায়ন করতে পারিঃ

myModule.directive(‘validateEquals’, function() {
return {
require: ‘ngModel’,
link: function(scope, elm, attrs, ngModelCtrl) {
function validateEqual(myValue) {
var valid= (myValue === scope.$eval(attrs.validateEquals));
ngModelCtrl.$setValidity(‘equal’, valid);
return valid ? myValue : undefined;
}
ngModelCtrl.$parsers.push(validateEqual);
ngModelCtrl.$formatters.push(validateEqual);
scope.$watch(attrs.validateEquals, function() {
ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue);
});
}
};
});

Angular স্থানীয়করণ (Localization) সমর্থন: AngularJS আন্তর্জাতিক অ্যাপ্লিকেশনের লেখা। Localization Support in Angular : Writing International Applications in AngularJS

Huge Sell on Popular Electronics

URL of translated tutorial
http://sitestree.com/841/
Paste written translation here
Angular স্থানীয়করণ সমর্থন: AngularJS আন্তর্জাতিক অ্যাপ্লিকেশনের লেখা।
Md. Shahinoor IslamAngular স্থানীয়করণ সমর্থন: AngularJS আন্তর্জাতিক অ্যাপ্লিকেশনের লেখা।
AngularJS লাইব্রেরি অধীনে en-US লোকেল সম্পর্কিত তথ্য রাখা হয় যেখানে একটি ফোল্ডার i18n আছে। আপনি একটি ভিন্ন লোকেল ব্যবহার করতে চান তাহলে নিম্নরূপ আপনি এটি করতে পারেন। Fr_ca লোকেলর জন্য সমর্থন lib/angular/angular-locale_fr-ca.js সঙ্গে স্ক্রিপ্ট ট্যাগ লক্ষ্য করুন। নীচে যেভাবে দেয়া আছে JS ফাইল সে ভাবে হতে হবে।
angular.module(‘locale’, [‘ngLocale’]) : module definition with a dependency on the ngLocale
angular.module (‘locale’, [‘ngLocale’]) : ngLocale মডিউলের উপর মডিউলের সংজ্ঞা নির্ভর করে।
<!doctype html>
<html ng-app=”locale”>
<head>
<meta charset=”utf-8″>
<script src=”lib/angular/angular.js”></script>
<script src=”lib/angular/angular-locale_fr-ca.js”></script>
<script src=”locale.js”></script>
</head>
<body ng-controller=”LocaleCtrl”>

</body>

সম্পর্কিত উদাহরণ:
{{now | date:’fullDate’}}সেট হিসাবে সম্পূর্ণ তারিখ ফিরে আসবে লোকেলর উপর ভিত্তি করে
{{100 | currency:’€’}}
{{1000.5 | number}}
অনুবাদ হ্যান্ডলিং: টেক্সট বিভিন্ন ভাষার জন্য অনুবাদ করতে হবে।

প্রাথমিক ধারণা হচ্ছে, বিভিন্ন লোকেইলের জন্য key value pairs সহ আপনার JSON structure থাকতে হবে।আপনি ইউজার লোকেল দিয়ে যেখানে অনুবাদ করতে চাচ্ছেন সেখানে কী গুলো ব্যবহার করুন।

উদাহরনঃ
{
‘crud.user.remove.success': ‘A user was removed successfully.’,
‘crud.user.remove.error': ‘There was a problem removing a user.’
. . .
}
In your HTML, you can write something like below
<span>Hello, !</span>
to
<span>{{‘greetings.hello’ | i18n}}, !</span>

greetings.hello key সহ লোকেলের জন্য আপনার প্রয়োজনীয় JSON আপনি বুঝতে পেরেছেন।

MVVM: মডেল : Angular JS

Huge Sell on Popular Electronics

URL of translated tutorial
http://sitestree.com/mvvm-model-view-viewmodel/
Paste written translation here
MVVM: মডেল দেখুন ViewModel
অনুবাদক শেখ সোয়াইব

MVVM: এই ধরনের Angular.JS এবং Knockout.js হিসেবে
http://en.wikipedia.org/wiki/Model_View_ViewModel
KnockOut.js
http://en.wikipedia.org/wiki/Knockout.js
মার্টিন ফাওলার দ্বারা উপস্থাপনা মডেল
http://martinfowler.com/eaaDev/PresentationModel.html (theory behind: MVVM)

Angular.JS বিষয় : সম্পর্কিত জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক স্টাফ . Angular.JS resources : Related JavaScript framework Stuff

Huge Sell on Popular Electronics

Angular.JS বিষয় : সম্পর্কিত জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক স্টাফ

Source: http://sitestree.com/angular-js-resources-related-javascript-framework-stuff/ (by Sayed Ahmed)
By শেখ সোয়াইব

কেন Angular? এবং কেন Angular না
http://www.sitepoint.com/10-reasons-use-angularjs/
কেন এই Angular.js Rock?
http://angular-tips.com/blog/2013/08/why-does-angular-dot-js-rock/
অনুচ্ছেদ এবং ই এস পি বিভাগের সম্পুর্ন পড়ুন : কেন Augular নয়?কেন নয় BackBone ,কেন নয় Ember । এ সম্প্রর্কিত বিষয় পড়তে এখানে ক্লিক করুন । https://moot.it/blog/technology/frameworkless-javascript.html

এই অনুচ্ছেদটি ও গুরুত্বপুর্ন : http://angular-tips.com/blog/archives/
স্লপ সাইজের ওয়েব ডেভল্ভমেন্ট ট্রেনিং এর সাথে Angular : https://egghead.io/
ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্ট এর সাথে Angular নিয়ন্ত্রণ : http://www.packtpub.com/angularjs-web-application-development/book
CRUD অ্যাপ্লিকেশন Angular ডেমো : https://github.com/angular-app/angular-app
Angular.JS উইকিপিডিয়া : https://github.com/angular/angular.js/wiki

অ্যাঙ্গুলার জেএস এক্সপ্রেশন (AngularJS Expressions in Bangla)

Huge Sell on Popular Electronics

অ্যাঙ্গুলার জেএস (AngularJS) এক্সপ্রেশন (Expressions)

Article By: Protap Chandra

 

AngularJS Expressions ব্যবহার করে HTML এর সঙ্গে ডাটা আবদ্ধ (bind) করা হয়।

AngularJS expression দ্বিতীয় বন্ধনীর ভেতর লেখা হয়: {{ expression }}.

expression HTML এর সঙ্গে ng-bind directive এর মতো একই ভাবে ডাটা আবদ্ধ করে।

ঠিক যেখানে expression লেখা হবে সেখানেই AngularJS আউটপুট প্রদান করবে।

AngularJS expression এর সঙ্গে JavaScript expression এর মিল পাওয়া যায়: এরা literals, operators এবং variables ধারণ করতে পারে।

যেমন: {{ 5 + 5 }} or {{ firstName + " " + lastName }}

 

AngularJS Expressions এর উদাহরণ:


<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="">
  <p>My first expression: {{ 5 + 5 }}</p>
</div>

</body>
</html>

 

ফলাফল :


My first expression: 10


 

 

আপনি যদি ng-app directive অপসারণ করেন, তাহলে HTML এখানকার expression কে হুবহু প্রদর্শন করবে। যুক্তিটির সমাধান করবে না।

ng-app directive ছাড়া AngularJS উদাহরণ:


<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div>
  <p>My first expression: {{ 5 + 5 }}</p>
</div>

</body>
</html>

ng-app directive ব্যবহার না করায় এই উদাহরণের ‌‌আউপুট আসবে: My first expression: {{ 5 + 5 }}

 

AngularJS Numbers

AngularJS number ঠিক JavaScript number এর মতোই।

উদাহরণ:


<div ng-app="" ng-init="quantity=1;cost=5">

<p>Total in dollar: {{ quantity * cost }}</p>

</div>

 

এই উদাহরণের আউটপুট আসবে :


Total in dollar: 5


ng-bind ব্যবহার করে একে ভিন্নভাবে লেখা যায়:


<div ng-app="" ng-init="quantity=1;cost=5">

<p>Total in dollar: <span ng-bind="quantity * cost"></span></p>

</div>

 

AngularJS Strings

AngularJS string ঠিক JavaScript string এর মতোই

উদাহরণ:


<div ng-app="" ng-init="firstName='John';lastName='Doe'">

<p>The name is {{ firstName + " " + lastName }}</p>

</div>

 

এই উদাহরণের আউটপুট আসবে:


The name is: John Doe


 

ng-bind ব্যবহার করে উদারহণটি এভাবে লেখা যায়:


<div ng-app="" ng-init="firstName='John';lastName='Doe'">

<p>The name is <span ng-bind="firstName + ' ' + lastName"></span></p>

</div>

এখানেও একই আউটপুট আসবে।

 

AngularJS Objects

AngularJS objects ঠিক JavaScript object এর মতো

উদাহরণ:


<div ng-app="" ng-init="person={firstName:'John',lastName:'Doe'}">
<p>নাম হল: {{ person.lastName }}</p>
</div>

 

এই উদাহরণের আউটপুট আসবে:


নাম হল: Doe


ng-bind ব্যবহার করে উদারহরণটি এভাবে লেখা যায়:


<div ng-app="" ng-init="person={firstName:'John',lastName:'Doe'}">
<p>নাম হল: <span ng-bind="person.lastName"></span></p>
</div>

 

এখানেও একই আউটপুট আসবে।

 

AngularJS Arrays

AngularJS array ঠিক JavaScript array এর মতো।

উদাহরণ:


<div ng-app="" ng-init="points=[1,15,19,2,40]">

<p>তৃতীয় অবস্থানে আছে: {{ points[2] }}</p>

</div>


 

উদাহরণে আউটপুট আসবে:


তৃতীয় অবস্থানে আছে 19.


 

 

ng-bind ব্যবহার করে উদাহরণটি এভাবে লেখা যায়:


<div ng-app="" ng-init="points=[1,15,19,2,40]">
<p>তৃতীয় অবস্থানে আছে <span ng-bind="points[2]"></span></p>
</div>

 

আশা করি খুব সহজে আপনারা অ্যাঙ্গুলার জেএস (AngularJS) এক্সপ্রেশন (Expressions) শিখতে পেরেছেন।

 

AngularJS Home পেজে যাওয়ার জন্য এখানে ক্লিক করুন

 

AngularJS পরিচিতি (AngularJS Introduction in Bangla)

Huge Sell on Popular Electronics

পারিজাত বিশ্বাস

AngularJS একটি JavaScript এর framework । এটি HTML পেজের সাথে <script> tag এর মাধ্যমে যোগ করা হয়।

AngularJS এইচটিএমএল এট্রিবিউট এর নির্দেশনা (Directive) অনুসারে প্রসারিত করে এবং HTML এর Expression এর সাথে তথ্য মিশ্রিত করে ।

 

AngularJS একটি JavaScript Framework

AngularJS একটি JavaScript Framework । এটা JavaScript দিয়ে লেখা একটি লাইব্রেরি ।
AngularJS একটি JavaScript ফাইল হিসাবে ব্যবহার করা হয় এবং একটি script tag দিয়ে একটি ওয়েব পেজে যোগ করা হয়


<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>

AngularJS, HTML কে প্রসারিত করে

AngularJS, HTML কে ng-directives দ্বারা প্রসারিত করে ।

ng-app directive, AngularJS আপ্লিকেশনকে সঙ্গায়িত করে ।

ng-model directive, HTML কন্ট্রোলের (input, select, textarea) তথ্য সংযুক্ত করে ।

ng-bind directive তথ্য সংযুক্ত করে HTML view এর মাধ্যমে ।

উদাহরণঃ


<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="">
  <p>Name: <input type="text" ng-model="name"></p>
  <p ng-bind="name"></p>
</div>

</body>
</html>

ফলাফল : AngularJS উদাহরণ

 

উদাহরনের ব্যাখ্যঃ

ওয়েব পেজ লোড হওয়া শেষ হলে AngularJS সয়ংক্রিয়ভাবে লোড হয়।

ng-app directive, AngularJS কে বলে যে <div> উপাদান হচ্ছে AngularJS application এর “মালিক” ।

ng-model directive, input field এ প্রদত্ত মান অ্যাপ্লিকেশন এর name ভেরিয়েবল এ যোগ করে ।

ng-bind directive, <p> এর ভিতরের innerHTML কে application এর name এর সাথে বেধে দেয়।

 

AngularJS Directives ( নির্দেশনা )

আপনি ইতোমধ্যে দেখেছেন যে AngularJS Directives (নির্দেশনাগুলি ) একটি html এট্রিবিউট, যা ng prefix দ্বারা আরোপিত ।

ng-init directive, AngularJS এর application ভ্যারিয়েবল দ্বারা শুরু হয় ।

উদাহরনঃ


<div ng-app="" ng-init="firstName='John'">

<p>The name is <span ng-bind="firstName"></span></p>

</div>

ফলাফল :


The name is John


 

 

যদি আপনি আপনার পেজ html এর জন্য বৈধ করতে চান তাহলে আপনি ng- এর পরিবর্তে data-ng- ব্যাবহার করতে পারেন,
উদাহরনঃ


<div data-ng-app="" data-ng-init="firstName='John'">

<p>The name is <span data-ng-bind="firstName"></span></p>

</div>

আপনি পরবর্তীতে directives সম্পর্কে আরও অনেক কিছু শিখতে পারবেন।

 

AngularJS Expressions (প্রকাশ )

AngularJS expressions লেখা হয় double braces এর ভিতরে : {{ expression }}

AngularJS expressions একই ভাবে তথ্য সংযুক্ত করে, ঠিক যেভাবে ng-bind directive করে ।

AngularJS সেখানেই "output” ডাটা প্রদর্শন করবে ঠিক যেখানে expression লেখা হবে।

উদাহরনঃ


<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="">
  <p>My first expression: {{ 5 + 5 }}</p>
</div>

</body>
</html>

 

ফলাফল :


My first expression: 10


 

 

আপনি এই টিউটোরিয়ালে expressions সম্পর্কে আরও অনেক কিছু জানতে পারবেন।

 

AngularJS Controllers (কনট্রোলারসমুহ)

AngularJS application গুলো controller দ্বারা পরিচালিত হয়ে থাকে  ।

ng-controller directive controllers কে নিরধারিত ( নির্দেশিত ) করে ।

controller code কাজ করবে যখন page লোড হবে ।

উদাহরনঃ


<div ng-app="" ng-controller="personController">
First Name: <input type="text" ng-model="firstName"><br>
 Last Name: <input type="text" ng-model="lastName"><br>
 <br>
 Full Name: {{firstName + " " + lastName}}
</div>
<script>
 function personController($scope) {
 $scope.firstName = "John";
 $scope.lastName = "Doe";
 }
 </script>

 

AngularJS টিউটোরিয়াল (AngularJS Tutorial in Bangla)

Huge Sell on Popular Electronics

মৃত্যুঞ্জয় বিশ্বাস

 
AngularJS, HTML কে নতুন এট্রিবিউট দ্বারা বৃস্তৃত করে।

AngularJS, SPA (Single Page Applications) এর জন্য উত্তম ।

AngularJS শেখা সহজ ।

 

এই টিউটোরিয়ালটিতে যা রয়েছে

এই টিউটোরিয়ালটি এমনভাবে ডিজাইন করা হয়েছে যাতে আপনি অতি দ্রুত ও দক্ষতার সাথে AngularJS শিখতে পারেন ।

প্রথমে আপনি AngularJS এর সকল মূল বিষয়গুলো শিখবেন, যেমনঃ directives, expressions, templates, এবং data binding।

এবং এরপর AngularJS সম্পর্কে যা জানা দরকার, তার সবই শিখবেন, যেমনঃ

Controllers, Modules, Events, DOM, Forms, Input, Validation, Http এবং আরও অনেক কিছু।

 

প্রতিটি অধ্যায়ে উদাহরণগুলো নিজে নিজে চেষ্টা করুন

প্রতিটি উদাহরণ নিজে নিজে চেষ্টা করে দেখুন:

যেমন -


<!DOCTYPE html>
<html lang="en-US">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js">
</script>
<body>

<div ng-app="">
  <p>Name : <input type="text" ng-model="name"></p>
  <h1>Hello {{name}}</h1>
</div>

</body>
</html>

ফলাফল : AngularJS উদাহরণ

 

আপনার কি কি জানা থাকতে হবে

AngularJS শিখার আগে আপনার যেগুলো সম্পর্কে ধারনা থাকতে হবেঃ

  • HTML
  • CSS
  • JavaScript

 

AngularJS এর ইতিহাস

AngularJS বেশ নতুন। ভার্সন ১.০ রিলিজ হয়েছে ২০১২ সালে ।

Miško Hevery, google এর একজন কর্মকর্তা ২০০৯ সালে AngularJS নিয়ে কাজ শুরু করেন। Idea টা খুবই কার্যকর হয়, এবং এখন এই project টি officially Google development team দ্বারা সাহায্যপ্রাপ্ত হয়।