আমি এমন একটি ডিরেক্টরি তৈরি করার চেষ্টা করছি যা সেই উপাদান হিসাবে একই এনজি-মডেল দিয়ে একটি ইনপুট ক্ষেত্র তৈরি করবে যা নির্দেশকে তৈরি করে।
আমি এতদূর যা নিয়ে এলাম তা এখানে:
এইচটিএমএল
<!doctype html>
<html ng-app="plunker" >
<head>
<meta charset="utf-8">
<title>AngularJS Plunker</title>
<link rel="stylesheet" href="style.css">
<script>document.write("<base href=\"" + document.location + "\" />");</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
This scope value <input ng-model="name">
<my-directive ng-model="name"></my-directive>
</body>
</html>
জাভাস্ক্রিপ্ট
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = "Felipe";
});
app.directive('myDirective', function($compile) {
return {
restrict: 'E',
scope: {
ngModel: '='
},
template: '<div class="some"><label for="{{id}}">{{label}}</label>' +
'<input id="{{id}}" ng-model="value"></div>',
replace: true,
require: 'ngModel',
link: function($scope, elem, attr, ctrl) {
$scope.label = attr.ngModel;
$scope.id = attr.ngModel;
console.debug(attr.ngModel);
console.debug($scope.$parent.$eval(attr.ngModel));
var textField = $('input', elem).
attr('ng-model', attr.ngModel).
val($scope.$parent.$eval(attr.ngModel));
$compile(textField)($scope.$parent);
}
};
});
যাইহোক, আমি নিশ্চিত না যে এই পরিস্থিতিটি হ্যান্ডেল করার সঠিক উপায়, এবং একটি ত্রুটি রয়েছে যে এনজি-মডেল লক্ষ্য ক্ষেত্রের মান দিয়ে আমার নিয়ন্ত্রণ আরম্ভ করা হচ্ছে না।
উপরের কোডটির একটি প্লঙ্কার এখানে রয়েছে: http://plnkr.co/edit/IvrDbJ
এটি পরিচালনা করার সঠিক উপায় কী?
সম্পাদনা : ng-model="value"
টেমপ্লেট থেকে অপসারণ করার পরে , এটি ঠিকঠাক কাজ করছে বলে মনে হচ্ছে। তবে, আমি এই প্রশ্নটি উন্মুক্ত রাখব কারণ আমি ডাবল চেক করতে চাই এটি করার এই সঠিক উপায়।
scope
এটি সরিয়ে সেট করেন তবে কী হবেscope: false
? কিভাবেng-model
এই ক্ষেত্রে আবদ্ধ ?