У меня есть глубокое понимание с угловым, и я не могу понять, что я делаю неправильно.AngularJs - transclude break ng-controller
У меня есть директива, окруженная ng-контроллером.
KApp.directive("testdirective", function ($compile)
{
return {
restrict: 'E',
transclude: true,
scope: {
test:"="
},
template: "<div>\
<div style='width:120px'>\
{{test}}\
</div>\
<div ng-transclude>\
</div>\
</div>"
};
});
KApp.controller('testCtrl', function ($scope)
{
$scope.someText ="not important"
$scope.pass = "1234";
$scope.showPass = function()
{
//why the $scope.pass not updated via ng-model???
alert($scope.pass)
}
});
HTML
<body ng-app="mainModule" ng-controller="appCtrl">
<div ng-controller="tsetCtrl">
<testdirective test="someText">
<button style='width:120px' ng-click='showPass()'>
Click me
</button>
<input ng-model='pass' style='width:120px'>
</testdirective>
</div>
ng-model="pass"
связываются с $scope.pass = "1234";
и он должен обновляться пользователем.
Моя проблема:
$scope.pass
делает не обновляется представлением, почему?
Полное описание - http://plnkr.co/edit/MsKm0LZtlQ45Yyq5Uw0d?p=preview
Просто нажмите на кнопку "мне просто" и выберите результат.
Итак, как ввод получает значение 1234 ??? от контроллера! – cheziHoyzer
Значение 1234 является примитивным, поэтому во внутреннем пространстве создается второй «проход», который переопределяет значение 1234 из внешней области (= контроллер). Пожалуйста, попробуйте. –