You can create a new scope manually.
You can create a new scope from $rootScope if you inject it, or just from your controller scope – this shouldn’t matter as you’ll be making it isolated.
var alertScope = $scope.$new(true);
alertScope.title="Hello";
AlertFactory.open(alertScope);
The key here is passing true to $new, which accepts one parameter for isolate, which avoids inheriting scope from the parent.
More information can be found at:
http://docs.angularjs.org/api/ng.$rootScope.Scope#$new