我正在使用bPopUp Jquery插件来制作模态。
在我的角度应用程序中,我使用事件广播将变量从范围传递到另一个。
我遇到的问题是,如果我在调用模式之前没有使用超时,则不会使用更新的新模型,但占位符将是" nameBefore"而不是值attrs.folderName
。
所以它适用于超时,但你知道如何不用吗?
请注意,如果我将超时置于$scope.folderToEdit = {name: name,key: key};
这是我的HTML
<body>
<layout>
<menu>
</menu>
<wrappers>
<article ng-repeat="folder in folders">
<!-- some html -->
<editFolder folder-name="folder.name" folder-key="folder.key"></editFolder>
</article>
</wrappers>
</layout>
<div folderEditPopUp>
<input type="text" placeholder="{{folderToEdit.name}}"></div>
</body>
这是我的javascript。
app.directive('folderEditPopUp', function() {
return {
restrict: 'A',
controller: function($scope, $rootScope){
$scope.folderToEdit = {
name: "nameBefore",
key: "key"
};
$rootScope.$on("folderEdition", function (event, name, key) {
$scope.folderToEdit = {
name: name,
key: key
};
});
}
}
});
app.directive('editFolder',['$rootScope', '$timeout', function ($rootScope, $timeout) {
return {
restrict: 'E',
template: '<a><img src="img/bt-edit.svg" alt="Modifier"></a>',
link: function(scope, elem, attrs) {
elem.bind("click", function(){
$rootScope.$broadcast("folderEdition", attrs.folderName, attrs.folderKey);
$timeout(function(){
$(attrs.thePopUp).bPopup();
}, 50);
})
}
}
}]);