입력에 초기 값 "Toto"가 표시되도록 지시문에 적용 할 범위는 무엇입니까? 사실범위의 지시어가 입력의 ngmodel을 깨는 것
HTML 코드 : 나는 범위를 먹고 싶어하지 않는
<!doctype html>
<html ng-app="plunker" >
<head>
<meta charset="utf-8">
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<input customattr type = "text" ng-model="value.name" />
</body>
</html>
JS 코드 :
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.value = {"name":"Toto", "id":1};
});
app.directive('customattr', function() {
return {
restrict: 'A',
scope: {
},
link: function (scope, element, attrs) {
}
};
});
Plunker 여기 : http://plnkr.co/edit/JxWElWhTeBbNpFHS0wYT
확인. customattr과 ng-model은 서로 다른 범위를 가지고 있지만 하나의 변수에 범위 바인딩 ("=")을 사용하여 도망 갈 수 있다고 생각했습니다. 바인딩의 요점이 두 가지 다른 범위를 조정하는 것이 아닌가? 요점은 범위가 제한되어 내 지시문이 좀 더 일반화되기를 바랍니다. – JohnCastle
@JohnCastle은 두 가지 문제가 있습니다. 문제는 scope = {val : '='} 구문을 사용하면이 DOM 요소에 새롭고 격리 된 범위를 만들고 설명 된대로 문제가 발생한다는 것입니다. –
@JohnCastle 한 가지 더 - 실제 사용 사례를 자세히 설명 할 수 있다면 솔루션을 제안 할 수 있습니다. –