小编cra*_*eum的帖子

Java BufferedWriter,OutputStreamWriter能够写入已关闭的FileOutputStream

当我将数据写入Stream时,我期待以下代码抛出异常:

File file = new File("test.txt");
FileOutputStream fs = new FileOutputStream(file);
OutputStreamWriter ow = new OutputStreamWriter(fs);
BufferedWriter writer = new BufferedWriter(ow);

fs.close();

try {
    ow.write(65);
    writer.write("test");
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

我意识到我应该关闭BufferedWriter,但在我当前的环境中,可能有可能在BufferedWriter关闭之前关闭FileOutputStream.FileOutputStream不应该抛出一个IOException,它应该向上移动直到它到达我的try/catch块并打印堆栈跟踪?

如果我尝试调用fs.write(65),那么它会抛出异常.

java fileoutputstream bufferedwriter

8
推荐指数
1
解决办法
3万
查看次数

AngularJS动态表单字段ID,指令不起作用

尝试将指令添加到具有动态ID的输入时,链接方法无法正确绑定到该对象.给出以下jsfiddle或html:

<div ng-app="myApp" ng-controller="MyCtrl">
  <p>Date: <input type="text" id="datepicker-{{id}}" datepicker></p>    
</div>
Run Code Online (Sandbox Code Playgroud)

和js:

var module = angular.module('myApp', []);

module.directive('datepicker', function() {
  var linker = function(scope, element, attrs) {
    element.datepicker();
  }

  return {
    restrict: 'A',
    link: linker
  }
});

function MyCtrl($scope) {
  $scope.id = 7
}
Run Code Online (Sandbox Code Playgroud)

我在控制台调试器上看到的是,当调用链接时,它会将id显示为"datepicker - {{id}}"而不是"datepicker-7".

有没有办法强迫这种情况发生?实现这个的更好方法是什么?

更新:应该澄清一下.单击时会显示日期选择器,但单击日期不起作用.我收到错误:"此datepicker的未捕获的实例数据"

javascript jquery angularjs

7
推荐指数
1
解决办法
3374
查看次数

如何评估变量以在JavaScript中访问其运行时值?

好的,我不知道如何在没有显示的情况下实际问这个问题.(还解释了为什么我无法弄清楚如何在Google上搜索它.)

鉴于代码如下:

dijit.byId('leftNavigationPane').onLoad = function(){setSecondaryNav(url.secondaryNavId);};

我想要对变量url.secondaryNavId进行评估,所以我真正想要的是对它进行如下处理:

dijit.byId('leftNavigationPane').onLoad = function(){ setSecondaryNav('item1'); };

我相信可能有更好的方法来做到这一点,所以请随意提出建议.

javascript closures

2
推荐指数
1
解决办法
817
查看次数