我目前被困在希望是一个简单的问题:
我有一个controller.js
app.controller('WizardCtrl', function ($scope) {
$scope.send = function() {
console.log($scope.isPasswordChanged)
}
});
我的view.html
isPasswordChanged: {{ isPasswordChanged }} <br>
<update-password-field is-changed="isPasswordChanged"></update-password-field>
<button ng-click="send()"></button>
我的指示.js
app.directive('updatePasswordField', function () {
return {
restrict: 'E',
scope: {
isChanged: "="
},
templateUrl: "password-field-directive.html",
link: function (scope) {
// some magic to set isChanged value to true of false
}
}
});
所以在我的view.html中,我可以看到&#34; isPasswordChanged&#34;的更改,以某种方式在我的$ scope中,但如果我在console.log($ scope)中,那么&#34; isPasswordChanged&# 34;不存在。
为什么以及如何让它出现?
答案 0 :(得分:3)
我认为您需要在控制器的功能()中加入$scope
。换句话说:
app.controller('WizardCtrl', ['$scope', function ($scope) {
否则我不相信它会起作用。
答案 1 :(得分:0)
原来这可能与我的结构有关。
我改变了
is-confirmed="isPasswordConfirmed"
到
is-confirmed="ui.isPasswordConfirmed"
“ui”是我在$ scope中定义的空对象。
它的工作。我尝试了一个独立的例子
http://plnkr.co/edit/bkMZTEWgkrmVfxqiYCcB?p=preview
但是如果没有这些变化,它也可能与角度版本不匹配。